Algorithms
Derivation of sorting algorithms from a specification
The Computer Journal
Data structures, algorithms, and performance
Data structures, algorithms, and performance
Data structures and algorithm analysis (2nd ed.)
Data structures and algorithm analysis (2nd ed.)
An inverted taxonomy of sorting algorithms
Communications of the ACM - Special section on computer architecture
The art of computer programming, volume 3: (2nd ed.) sorting and searching
The art of computer programming, volume 3: (2nd ed.) sorting and searching
Communications of the ACM
Introduction to Algorithms: A Creative Approach
Introduction to Algorithms: A Creative Approach
Data Structures and Algorithms
Data Structures and Algorithms
Bubble sort: an archaeological algorithmic analysis
SIGCSE '03 Proceedings of the 34th SIGCSE technical symposium on Computer science education
Equivalence between priority queues and sorting
Journal of the ACM (JACM)
Introduction to Algorithms, Third Edition
Introduction to Algorithms, Third Edition
A derivation-first approach to teaching algorithms
Proceeding of the 44th ACM technical symposium on Computer science education
Hi-index | 0.00 |
This paper offers an exercise for revisiting the main sorting algorithms after they have been taught to students. This is done in a way that emphasizes the relationships between them, and shows how considering abstraction and extreme cases can lead to the generation of new algorithms. A number of authors (including textbook authors) have noted particular relationships between algorithms, such as an uneven split in merge sort being equivalent to insertion sort. In this paper we use a flexible priority queue, the d-heap, to derive three common sorting algorithms. We combine this with using a BST as a priority queue, plus prior observations in the literature, to show strong relationships between the main sorting algorithms that appear in textbooks. In the process students are able to revisit a number of algorithms and data structures and explore elegant relationships between them. This approach can also lead to exercises and exam questions that go beyond desk-checking to evaluate students' understanding of these algorithms.