40 research outputs found
Shellsort with three increments
A perturbation technique can be used to simplify and sharpen A. C. Yao's
theorems about the behavior of shellsort with increments . In
particular, when and , the average
running time is . The proof involves interesting properties of
the inversions in random permutations that have been -sorted and -sorted
Average-Case Complexity of Shellsort
We prove a general lower bound on the average-case complexity of Shellsort:
the average number of data-movements (and comparisons) made by a -pass
Shellsort for any incremental sequence is \Omega (pn^{1 + 1/p) for all . Using similar arguments, we analyze the average-case complexity
of several other sorting algorithms.Comment: 11 pages. Submitted to ICALP'9
Zig-zag Sort: A Simple Deterministic Data-Oblivious Sorting Algorithm Running in O(n log n) Time
We describe and analyze 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, however, 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. We provide both
constructive and non-constructive implementations of Zig-zag Sort, based on the
existence of a circuit known as an epsilon-halver, such that the constant
factors in our constructive implementations are orders of magnitude smaller
than those for constructive variants of the AKS sorting network, which are also
based on the use of epsilon-halvers.Comment: Appearing in ACM Symp. on Theory of Computing (STOC) 201
Improving the performance of bubble sort using a modified diminishing increment sorting
Sorting involves rearranging information into either ascending or descending order. There are many
sorting algorithms, among which is Bubble Sort. Bubble Sort is not known to be a very good sorting
algorithm because it is beset with redundant comparisons. However, efforts have been made to
improve the performance of the algorithm. With Bidirectional Bubble Sort, the average number of
comparisons is slightly reduced and Batcher’s Sort similar to Shellsort also performs significantly
better than Bidirectional Bubble Sort by carrying out comparisons in a novel way so that no
propagation of exchanges is necessary. Bitonic Sort was also presented by Batcher and the strong
point of this sorting procedure is that it is very suitable for a hard-wired implementation using a sorting
network. This paper presents a meta algorithm called Oyelami’s Sort that combines the technique of
Bidirectional Bubble Sort with a modified diminishing increment sorting. The results from the
implementation of the algorithm compared with Batcher’s Odd-Even Sort and Batcher’s Bitonic Sort
showed that the algorithm performed better than the two in the worst case scenario. The implication is
that the algorithm is faster