Zig-zag sort: a simple deterministic data-oblivious sorting algorithm running in O(n log n) time

We describe Zig-zag Sort---a deterministic data-oblivious sorting algorithm running in O(n log n) time that is arguably simpler than previously known algorithms with similar properties, which are based on the AKS sorting network. Because it is data-oblivious and deterministic, Zig-zag Sort can be implemented as a simple O(n log n)-size sorting network, thereby providing a solution to an open problem posed by Incerpi and Sedgewick in 1985. In addition, Zig-zag Sort is a variant of Shellsort, and is, in fact, the first deterministic Shellsort variant running in O(n log n) time. The existence of such an algorithm was posed as an open problem by Plaxton et al. in 1992 and also by Sedgewick in 1996. More relevant for today is the fact that the existence of a simple data-oblivious deterministic sorting algorithm running in O(n log n) time simplifies the "inner-loop" computation in several proposed oblivious-RAM simulation methods (which utilize AKS sorting networks), and this, in turn, implies simplified mechanisms for privacy-preserving data outsourcing in several cloud computing applications.

[1]  David Eppstein,et al.  Privacy-preserving data-oblivious geometric algorithms for geographic data , 2010, GIS '10.

[2]  Michael T. Goodrich,et al.  Privacy-Preserving Access of Outsourced Data via Oblivious RAM Simulation , 2010, ICALP.

[3]  Joel I. Seiferas,et al.  Sorting Networks of Logarithmic Depth, Further Simplified , 2009, Algorithmica.

[4]  János Komlós,et al.  Halvers and expanders (switching) , 1992, Proceedings., 33rd Annual Symposium on Foundations of Computer Science.

[5]  C. Greg Plaxton,et al.  Improved lower bounds for Shellsort , 1992, Proceedings., 33rd Annual Symposium on Foundations of Computer Science.

[6]  H. Manos Construction of Halvers , 1999, Inf. Process. Lett..

[7]  C. Greg Plaxton,et al.  Lower Bounds for Shellsort , 1997, J. Algorithms.

[8]  Michael T. Goodrich,et al.  Randomized Shellsort: A Simple Data-Oblivious Sorting Algorithm , 2011, JACM.

[9]  Vašek Chvátal Lecture Notes on the New AKS Sorting Network , 1992 .

[10]  E. Szemerédi,et al.  O(n LOG n) SORTING NETWORK. , 1983 .

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

[12]  Rafail Ostrovsky,et al.  Software protection and simulation on oblivious RAMs , 1996, JACM.

[13]  János Komlós,et al.  Sorting in c log n parallel sets , 1983, Comb..

[14]  Mike Paterson,et al.  Improved sorting networks withO(logN) depth , 1990, Algorithmica.

[15]  Frank Thomson Leighton,et al.  Tight Bounds on the Complexity of Parallel Sorting , 1984, IEEE Transactions on Computers.

[16]  Robert Sedgewick,et al.  Analysis of Shellsort and Related Algorithms , 1996, ESA.

[17]  Hang Xie Studies on sorting networks and expanders , 1998 .

[18]  Bjorn Poonen,et al.  The Worst Case in Shellsort and Related Algorithms , 1993, J. Algorithms.

[19]  David Thomas,et al.  The Art in Computer Programming , 2001 .

[20]  Michael T. Goodrich,et al.  Spin-the-Bottle Sort and Annealing Sort: Oblivious Sorting via Round-Robin Random Comparisons , 2010, Algorithmica.

[21]  Robert Sedgewick,et al.  Improved upper bounds on shellsort , 1983, 24th Annual Symposium on Foundations of Computer Science (sfcs 1983).

[22]  Kenneth E. Batcher,et al.  Sorting networks and their applications , 1968, AFIPS Spring Joint Computing Conference.

[23]  János Komlós,et al.  An 0(n log n) sorting network , 1983, STOC.

[24]  Robert Cypher A Lower Bound on the Size of Shellsort Sorting Networks , 1993, SIAM J. Comput..

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

[26]  N. Linial,et al.  Expander Graphs and their Applications , 2006 .

[27]  János Komlós,et al.  Halvers and Expanders , 1992, FOCS 1992.

[28]  Donald L. Shell,et al.  A high-speed sorting procedure , 1959, CACM.

[29]  Kenneth E. Batcher,et al.  Designing Sorting Networks: A New Paradigm , 2011 .

[30]  L. H.,et al.  Communication Networks , 1936, Nature.

[31]  Vaughan R. Pratt Shellsort and Sorting Networks , 1972, Outstanding Dissertations in the Computer Sciences.

[32]  C. Greg Plaxton,et al.  Hypercubic Sorting Networks , 1998, SIAM J. Comput..

[33]  Michael T. Goodrich,et al.  Privacy-preserving group data access via stateless oblivious RAM simulation , 2011, SODA.

[34]  Ivan Damgård,et al.  Perfectly Secure Oblivious RAM Without Random Oracles , 2011, IACR Cryptol. ePrint Arch..

[35]  Kenneth E. Batcher,et al.  Designing Sorting Networks , 2011 .

[36]  Nicholas Pippenger CHAPTER 15 – Communication Networks , 1990 .

[37]  Timothy J. Purcell Sorting and searching , 2005, SIGGRAPH Courses.