- Library sort
Library sort, or gapped insertion sort is a
sorting algorithm that uses aninsertion sort , but with gaps in the array to accelerate subsequent insertions. The name comes from an analogy::"Suppose a librarian were to store his books alphabetically on a long shelf, starting with the As at the left end, and continuing to the right along the shelf with no spaces between the books until the end of the Zs. If the librarian acquired a new book that belongs to the B section, once he finds the correct space in the B section, he will have to move every book over, from the middle of the Bs all the way down to the Zs in order to make room for the new book. This is an insertion sort. However, if he were to leave a space after every letter, as long as there was still space after B, he would only have to move a few books to make room for the new one. This is the basic principle of the Library Sort."Fact|date=March 2008
The algorithm was proposed by Michael A. Bender, Martín Farach-Colton, and
Miguel Mosteiro in 2004. Like the insertion sort it is based on, library sort is a stablecomparison sort and can be run as anonline algorithm ; however, it was shown to have a high probability of running in O(n log n) time (comparable toquicksort ), rather than an insertion sort's O(n2). Its implementation is very similar to askip list . The drawback to using the library sort is that it requires extra space for its gaps (the extra space is traded off against speed).References
* [http://citeseer.ist.psu.edu/bender04insertion.html Original publication at Citeseer]
Wikimedia Foundation. 2010.