On Linear Search Heuristics

Bentley and McGeoch [l] have advised practicing programmers to use linear search in quite a few cases, mainly when more efficient and sophisticated methods are too clumsy or when space is severely limited. On the other hand, linear search has been an extensively used example when amortized complexity and self-adjusting data structures are studied [1,4]. Self-adjusting data structures have the characteristic feature that, during each access and update operation, a simple restructuring rule is applied in order to improve the efficiency of future operations. In the case of unsorted linear lists, the purpose of restructuring rules is to ensure that frequently accessed items are near to the front of the list. The most common restructuring rules for unsorted linear lists are the following.