|
ABSTRACT
The bibliography appearing at the end of this article lists 37 sorting algorithms and 100 books and papers on sorting published in the last 20 years. The basic ideas presented here have been abstracted from this body of work, and the best algorithms known are given as examples. As the algorithms are explained, references to related algorithms and mathematical or experimental analyses are given. Suggestions are then made for choosing the algorithm best suited to a given situation.
REFERENCES
Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.
 |
1
|
|
| |
2
|
BARSAMIAN, H. "Firmware sort processor with LSI components." In Proc. AFIPS 1970 SJCC, Vol. 36, AFIPS Press, Montvale, N.J., 183-190.
|
| |
3
|
BATCHER, K. E. "Sorting networks and their applications." In Proe. AFIPS 1968 SJCC, Vol. 32, AFIPS Press, Montvale, N.J., 307- 314.
|
 |
4
|
|
| |
5
|
BELL, D. A. "The principles of sorting." Computer J. 1, 1 (1958), 71-77.
|
| |
6
|
BENDER, B. K.; AND A. J. GOLDMAN. "Analytic comparison of suggested configurations for automatic mail sorting equipment." J. Research NBS 63B, 4 (Oct.-Dec. 1959), 83-104.
|
 |
7
|
|
 |
8
|
|
 |
9
|
|
 |
10
|
|
 |
11
|
|
| |
12
|
BURGE, W.H. "Sorting, trees, and measures of order." Information & Control 1 (1958), 181-197.
|
| |
13
|
CARTER, W. C. "Mathematical analysis of merge-sorting techniques." In Proc. IFIP Cong. 1962, North-Holland Publ. Co., Amsterdam, 1963, 62-66.
|
 |
14
|
|
| |
15
|
DAVIES, D. W. "Sorting of data on an electronic computer." Proc. Inst. Electronic Engineers (London) 103, Part B supplement (1956), 87-93.
|
| |
16
|
DE BEAVCbAIR, W. "Das sortieren yon Magnetband-Daten in einfachen Buchungsanlagen." Eleklr. Reehen. 2 (April 1961), 75-82. (German)
|
| |
17
|
DEFIORE, C.E. "Fast sorting." Datamation 16, 8 (Aug. 1, 1970), 47-51.
|
 |
18
|
|
 |
19
|
|
 |
20
|
|
 |
21
|
|
| |
22
|
|
| |
23
|
FLOYD, R. W.; AND D. E. KNUTH. "Improved constructions for the Bose-Nelson sorting problem." Notices Amer. Math. Society 14 (1967), 283.
|
| |
24
|
FLOYD, R. W.; AND D. E. KNUTH. "The Bose-Nelson sorting problem." Stanford Computer Science Memo., STAN-CS-70-177, Nov. 1970.
|
| |
25
|
FORD, L. R.; AND S. M. JOHNSON. "A tournament problem." Amer. Math. Monthly 55 (May 1959), 387-389.
|
 |
26
|
|
| |
27
|
FOSTER, C.C. "Sorting almost ordered arrays." Computer J. 11, 2 (Aug. 1968), 134-137.
|
 |
28
|
|
 |
29
|
|
 |
30
|
|
 |
31
|
|
 |
32
|
|
| |
33
|
GALE, D.; AND R. KARP. "A phenomenon in the theory of sorting." In IEEE Conf. Record of the 11th Annual Symposium on Switching and Automata Theory, 1970, 51-59.
|
| |
34
|
|
 |
35
|
|
| |
36
|
GILSTAD, R.L. "Polyphase merge sortingan advanced technique." In Proc. EJCC, Vol. 18, Dec. 1960, Spartan Books, New York, 143-148.
|
 |
37
|
|
 |
38
|
|
 |
39
|
|
 |
40
|
|
 |
41
|
|
 |
42
|
|
 |
43
|
|
| |
44
|
GOETZ, M. A. "Some improvements in the technology of string merging and internal sorting." In Proc. AFIPS 1964 SJCC, Vol. 25, Spartan Books, New York, 599-607.
|
| |
45
|
GOETZ, M.A. "A disk file sorting problem." In Proc. 3rd Annual Princeton Conf. on In}o. Science and Systems, Dept. Electrical Engineering, Princeton Univ., 1969, 281-285.
|
 |
46
|
|
 |
47
|
|
 |
48
|
|
 |
49
|
|
 |
50
|
|
 |
51
|
|
| |
52
|
HOARE, C. A.R. "Quicksort." Computer J. 5, 1 (1962), 10-15.
|
| |
53
|
HOSKEN, J. C. "Evaluation of sorting methods." In Proe. EJCC, Vol. 8, Spartan Books, New York, Nov. 1955, 39-55.
|
 |
54
|
|
| |
55
|
HWANG, F. K.; AND S. LIN. "An analysis of Ford and Johnson's sorting algorithm." In Proc. 3rd Annual Princeton Conf. on Info. Science and Systems, Dept. Electrical Engineering, Princeton Univ., 1969, 292-296.
|
 |
56
|
|
| |
57
|
JONES, .R.W. "Sorting by merging." Computer J. 2, 2 (July 1959), 95-96.
|
| |
58
|
KISLITSYN, S. S. "On finding the kth element of an ordered population by means of pair-wise matching." Sibirsky Matem. Zh. 5, 3 (1964), 557-564.
|
 |
59
|
|
 |
60
|
|
| |
61
|
KNUTH, E. D. "Optimum binary search trees." Stanford Computer Science Memo. CS 149, 1970.
|
| |
62
|
|
 |
63
|
B. F. Cheydleur , R. Kronmal , M. Tarter, Analysis of computational systems: Cumulative polygon address calculation sorting, Proceedings of the 1965 20th national conference, p.376-385, August 24-26, 1965, Cleveland, Ohio, United States
[doi> 10.1145/800197.806060]
|
| |
64
|
LAUTZ, W. "Sortierverfahren ftir technische Dual-Computer: Part 1." Elektronische Datenverarbeitung, 2 (April 1963), 69-81. (German)
|
| |
65
|
LAUTZ, W. Sortierverfahren fiir technische Dual-Computer: Part 2." Elektronische. Dalenverarbeitung, 3 (May 1963), 133-141 (German)
|
 |
66
|
|
| |
67
|
LEVY, S. Y.; AiD M. C. PAULL. "An algebra with application to sorting algorithms." In Proc. 3rd Annual Princeton Conf. on Info. Sciences and Systems, Dept. Electrical Engineering, Princeton Univ., 1969, 286-291.
|
| |
68
|
LIU, D. "Construction of sorting plans." Presented at Internatl. Symposium on the Theory of Machines and Computations, Haifa, Israel, Aug. 1971.
|
| |
69
|
LYNCH, W.C. "More combinatorial properties of certain trees." Computer J. 7, 4 (Jan. 1965), 299-302.
|
 |
70
|
|
 |
71
|
|
 |
72
|
|
 |
73
|
|
 |
74
|
|
| |
75
|
MOELLER, D. "MR-1401 a generalized sort program for the card-RAMAC 1401." In IBM Systems Engineering Conf., New York, 1961.
|
 |
76
|
|
| |
77
|
MORRIS, R. "Some theorems on sorting." SIAM J. Appl. Math. 17, 1 (Jan. 1969), 1-6.
|
 |
78
|
|
 |
79
|
|
 |
80
|
|
| |
81
|
O'CONNOR, D.G.;ANDR. J. NELSON. "Sorting system with n-line sorting switch." US Patent 3029413, issued April 10, 1962.
|
| |
82
|
PAPERNOV, A. A.; AND G. V. STASEVICH. "A method of information sorting in computer memories." Problems of Information Transmission 1, 3 (19677, 63-75.
|
 |
83
|
|
| |
84
|
PICARD, C. "Several recent ideas on the sorting problem." Rev. Franc. Trait. Inf. 9, 1 (1966), 41-46. (French)
|
| |
85
|
RADKE, C. E. "Merge-sort analysis by matrix techniques." IBM Systems J. 5, 4 (19667, 226-247.
|
 |
86
|
|
 |
87
|
|
 |
88
|
|
| |
89
|
SEEBLR, R. R. "Associative self-sorting memory." In Proc. EJCC, Vol. 18, 1960, Spartan Books, N.Y. 179-187.
|
 |
90
|
|
 |
91
|
|
 |
92
|
|
 |
93
|
|
 |
94
|
|
 |
95
|
|
 |
96
|
|
| |
97
|
WIERZHOWSKI, J. "Sorting by means of random access store." Algorytmy 2, 4 (1965), 59-68.
|
| |
98
|
WINDLY, P. F. "The influence of storage access time on merging processes in a computer." Computer J. 2, 2 (July 1959), 49-53.
|
| |
99
|
WINDLY, P. F. "Trees, forests, and rearranging." Computer J. 3, 2 (July 1960), 84-88.
|
| |
100
|
WOODRUM, L. J. "Internal sorting with minimal comparing." IBM Systems J. 8, 3 (19697, 189-203.
|
 |
A1
|
|
| |
A2
|
BATTY, M. A. "Certification of algorithm 201: Shellsort." Comm. A CM 7, 6 (June 19647, 349.
|
 |
A3
|
|
 |
A4
|
|
| |
A5
|
BOOTHROYD, J. "Algorithm 201: Shellsort." Comm. ACM 8, 6 (Aug. 1963,), 445.
|
 |
A6
|
|
| |
A7
|
BOOTHROYD, J. "Algorithm 25. Sort a section of the elements of an array by determining the rank of each element." Computer J . 10, 3 (Nov. 1967), 308-309.
|
| |
A8
|
BOOTHROYD, J. "Algorithm 26. Order the subscripts of an array section according to the magnitudes of the elements." Computer J . 10, 3 (Nov. 1967), 309-310.
|
| |
A9
|
BOOTHROYD, J. "Algorithm 27. Rearrange the elements of an array section according to a permutation of the subscripts." Computer J. 10, 3 (Nov. 1967), 310.
|
 |
A10
|
|
 |
A11
|
|
 |
A12
|
|
 |
A13
|
|
 |
A14
|
|
 |
A15
|
|
 |
A16
|
|
 |
A17
|
|
 |
A18
|
|
 |
A19
|
|
 |
A20
|
|
 |
A21
|
|
 |
A22
|
|
 |
A23
|
|
 |
A24
|
|
 |
A25
|
B. Randell , L. J. Russell, Certification of algorithms 63, 64 and 65, partition, quicksort, and find, Communications of the ACM, v.6 n.8, p.446, Aug. 1963
[doi> 10.1145/366707.367561]
|
 |
A26
|
|
 |
A27
|
|
 |
A28
|
|
| |
A29
|
SCOWEN, R. S. "Notes on algorithms 25, 26." Computer J. 12, 4 (Nov. 1969), 408-409.
|
 |
A30
|
|
 |
A31
|
|
 |
A32
|
|
| |
A33
|
WILLIAMS, J. W .J . "Algorithm 232: Heapsort." Comm. ACM 7, 6 (June 1964), 347-348.
|
| |
A34
|
WOODALL, A. D. "Algorithm 43: a listed radix sort." Computer J. 12, 4 (Nov. 1969), 406.
|
| |
A35
|
WOODALL, A.D. "Algorithm 45: an internal sorting procedure using a two-way merge." Computer J. 13, 1 (Feb. 1970), 110-111.
|
| |
A36
|
WOODALL, A. D. "Note on algorithms 25, 26." Computer J. 13, 3 (Aug. 1970), 326.
|
| |
A37
|
WOODALL, A.D. "Algorithm 55: an internal merge sort giving ranks of items." Computer J . 13, 4 (Nov. 1970), 424-425.
|
CITED BY 12
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
D. Janaki Ram , K. N. Anantharaman , K. N. Guruprasad , M. Sreekanth , S. V. G. K. Raju , A. Ananda Rao, An approach for pattern oriented software development based on a design handbook, Annals of Software Engineering, v.10 n.1-4, p.329-358, 2000
|
|
|
|
|
|
Jatin Chhugani , Anthony D. Nguyen , Victor W. Lee , William Macy , Mostafa Hagog , Yen-Kuang Chen , Akram Baransi , Sanjeev Kumar , Pradeep Dubey, Efficient implementation of sorting on multi-core SIMD CPU architecture, Proceedings of the VLDB Endowment, v.1 n.2, August 2008
|
|
|
|
|
|
|
|