Sorting Stably, in Place, with O(n log n) Comparisons and O(n) Moves

We settle a long-standing open question, namely whether it is possible to sort a sequence of n elements stably (i.e., preserving the original relative order of the equal elements), using O(1) auxiliary space and performing O(n log n) comparisons and O(n) data moves. Munro and Raman stated this problem in J. Algorithms (13, 1992) and gave an in-place but unstable sorting algorithm that performs O(n) data moves and O(n1+ε) comparisons. Subsequently (Algorithmica, 16, 1996) they presented a stable algorithm with these same bounds. Recently, Franceschini and Geffert (FOCS 2003) presented an unstable sorting algorithm that matches the asymptotic lower bounds on all computational resources.

[1]  Jyrki Katajainen,et al.  Sorting multisets stably in minimum space , 1992, Acta Informatica.

[2]  Roberto Grossi,et al.  Optimal Cache-Oblivious Implicit Dictionaries , 2003, ICALP.

[3]  Lutz M. Wegner A generalized, one-way, stackless quicksort , 1987, BIT Comput. Sci. Sect..

[4]  Donald E. Knuth,et al.  The art of computer programming, volume 3: (2nd ed.) sorting and searching , 1998 .

[5]  Jyrki Katajainen,et al.  Stable minimum space partitioning in linear time , 1992, BIT.

[6]  Donald Ervin Knuth,et al.  The Art of Computer Programming , 1968 .

[7]  Derick Wood,et al.  Implicit Selection , 1988, SWAT.

[8]  Donald E. Knuth,et al.  A one-way, stackless quicksort algorithm , 1986 .

[9]  Gianni Franceschini,et al.  An in-place sorting with O(n log n) comparisons and O(n) moves , 2003, 44th Annual IEEE Symposium on Foundations of Computer Science, 2003. Proceedings..

[10]  Venkatesh Raman,et al.  Selection from Read-Only Memory and Sorting with Minimum Data Movement , 1996, Theor. Comput. Sci..

[11]  Luis I. Trabb-Pardo Stable sorting and merging with optimal space and time bounds. , 1974 .

[12]  R. K. Shyamasundar,et al.  Introduction to algorithms , 1996 .

[13]  Branislav Durian Quicksort Without a Stack , 1986, MFCS.

[14]  J. IAN MUNRO,et al.  An Implicit Data Structure Supporting Insertion, Deletion, and Search in O(log² n) Time , 1986, J. Comput. Syst. Sci..

[15]  Venkatesh Raman,et al.  Sorting with Minimum Data Movement , 1992, J. Algorithms.

[16]  Jeffrey S. Salowe,et al.  Simplified Stable Merging Tasks , 1987, J. Algorithms.

[17]  Alon Itai,et al.  A Sparse Table Implementation of Priority Queues , 1981, ICALP.

[18]  Jyrki Katajainen,et al.  In-Place Sorting with Fewer Moves , 1999, Inf. Process. Lett..

[19]  Donald E. Knuth,et al.  The Art of Computer Programming: Volume 3: Sorting and Searching , 1998 .

[20]  Venkatesh Raman,et al.  Fast stable in-place sorting withO(n) data moves , 1996, Algorithmica.