Quicksort: Combining Concurrency, Recursion, and Mutable Data Structures
Quicksort (Commun. ACM 4(7):321–322, 1961) remains one of the most studied algorithms in computer science. It is important not only as a practical sorting method, but also as a splendid teaching aid for introducing recursion and systematic algorithm development. The algorithm has been studied extens...
Saved in:
| Published in | Reflections on the Work of C.A.R. Hoare pp. 229 - 254 |
|---|---|
| Main Authors | , , |
| Format | Book Chapter |
| Language | English |
| Published |
London
Springer London
21.07.2010
|
| Subjects | |
| Online Access | Get full text |
| ISBN | 1848829116 9781848829114 |
| DOI | 10.1007/978-1-84882-912-1_11 |
Cover
| Summary: | Quicksort (Commun. ACM 4(7):321–322, 1961) remains one of the most studied algorithms in computer science. It is important not only as a practical sorting method, but also as a splendid teaching aid for introducing recursion and systematic algorithm development. The algorithm has been studied extensively; so, it is natural to assume that everything that needs to be said about it has already been said. Yet, in attempting to code it using a recent programming language of our design, we discovered that its structure is more clearly expressed as a concurrent program that manipulates a shared mutable store, without any locking or explicit synchronization. In this paper, we describe the essential aspects of our programming language Orc (Proceedings of FMOODS/FORTE, vol. 5522 of LNCS, pp. 1–25. Springer 2009), show a number of examples that combine its features in various forms, and then develop a concise description of Quicksort. We hope to highlight the importance of including concurrency, recursion and mutability within a single theory. |
|---|---|
| ISBN: | 1848829116 9781848829114 |
| DOI: | 10.1007/978-1-84882-912-1_11 |