The art of computer programming, volume 3: (2nd ed.) sorting and searching
The art of computer programming, volume 3: (2nd ed.) sorting and searching
Algorithms + Data Structures = Programs
Algorithms + Data Structures = Programs
The role of the high level specification in programming by transformation: specification and transformation by parts
A top down unification of minimum cost spanning tree algorithms
SIGCOMM '89 Symposium proceedings on Communications architectures & protocols
A space-efficient parallel garbage compaction algorithm
ICS '91 Proceedings of the 5th international conference on Supercomputing
Min-max sort: a simple sorting method (abstract only)
CSC '87 Proceedings of the 15th annual conference on Computer Science
Parallel merge-sort algorithms on the HEP
CSC '86 Proceedings of the 1986 ACM fourteenth annual conference on Computer science
Proceedings of the thirty-second SIGCSE technical symposium on Computer Science Education
A case for OO -- Java -- in teaching algorithm analysis
PPPJ '03 Proceedings of the 2nd international conference on Principles and practice of programming in Java
Object-oriented algorithm analysis and design with Java
Science of Computer Programming - Special issue on principles and practice of programming in java (PPPJ 2003)
A taxonomy of DFA-based string processors
SAICSIT '06 Proceedings of the 2006 annual research conference of the South African institute of computer scientists and information technologists on IT research in developing countries
Sorting algorithms as special cases of a priority queue sort
Proceedings of the 42nd ACM technical symposium on Computer science education
Hi-index | 0.00 |
An alternative taxonomy (to that of Knuth and others) of sorting algorithms is proposed. It emerges naturally out of a top-down approach to the derivation of sorting algorithms. Work done in automatic program synthesis has produced interesting results about sorting algorithms that suggest this approach. In particular, all sorts are divided into two categories: hardsplit/easyjoin and easysplit/hardjoin. Quicksort and merge sort, respectively, are the canonical examples in these categories. Insertion sort and selection sort are seen to be instances of merge sort and quicksort, respectively, and sinking sort and bubble sort are in-place versions of insertion sort and selection sort. Such an organization introduces new insights into the connections and symmetries among sorting algorithms, and is based on a higher level, more abstract, and conceptually simple basis. It is proposed as an alternative way of understanding, describing, and teaching sorting algorithms.