First page Back Continue Last page Graphics
You could also use balanced trees
If the items are unique then you could also implement the array elements as balanced binary search trees.
Except for the complexity added to your implementation this is at least as good as Separate Chaining (Linked Lists) and reduces the worst case scenarios to O(log(n)).