Splitsort—an adaptive sorting algorithm
Information Processing Letters
Journal of Algorithms
Splaysort: fast, versatile, practical
Software—Practice & Experience
Exploiting few inversions when sorting: sequential and parallel algorithms
Theoretical Computer Science
Introspective sorting and selection algorithms
Software—Practice & Experience
The art of computer programming, volume 3: (2nd ed.) sorting and searching
The art of computer programming, volume 3: (2nd ed.) sorting and searching
A unifying look at data structures
Communications of the ACM
A data structure for manipulating priority queues
Communications of the ACM
Priority Queues, Pairing, and Adaptive Sorting
ICALP '02 Proceedings of the 29th International Colloquium on Automata, Languages and Programming
On the Performance of WEAK-HEAPSORT
STACS '00 Proceedings of the 17th Annual Symposium on Theoretical Aspects of Computer Science
Proceedings of the 4th GI-Conference on Theoretical Computer Science
A new representation for linear lists
STOC '77 Proceedings of the ninth annual ACM symposium on Theory of computing
Scaling and related techniques for geometry problems
STOC '84 Proceedings of the sixteenth annual ACM symposium on Theory of computing
Adaptive sorting: an information theoretic perspective
Acta Informatica
On the adaptiveness of Quicksort
Journal of Experimental Algorithmics (JEA)
ACM Transactions on Algorithms (TALG)
Bulk-Insertion Sort: Towards Composite Measures of Presortedness
SEA '09 Proceedings of the 8th International Symposium on Experimental Algorithms
Cache-aware and cache-oblivious adaptive sorting
ICALP'05 Proceedings of the 32nd international conference on Automata, Languages and Programming
Hi-index | 0.00 |
In this paper we introduce two efficient priority queues. For both, insert requires O(1) amortized time and extract-min$O(\lg n)$ worst-case time including at most $\lg n + O(1)$ element comparisons, where n is the number of elements stored. One priority queue is based on a weak heap (array-based) and the other on a weak queue (pointer-based). In both, the main idea is to temporarily store the inserted elements in a buffer, and once it is full to move its elements to the main queue using an efficient bulk-insertion procedure. By employing the new priority queues in adaptive heapsort, we guarantee, for several measures of disorder, that the formula expressing the number of element comparisons performed by the algorithm is optimal up to the constant factor of the high-order term. We denote such performance as constant-factor optimality. Unlike some previous constant-factor-optimal adaptive sorting algorithms, adaptive heapsort relying on the developed priority queues is practically workable.