Algorithm 426: Merge sort algorithm [M1]
- 1 May 1972
- journal article
- Published by Association for Computing Machinery (ACM) in Communications of the ACM
- Vol. 15 (5) , 357-358
- https://doi.org/10.1145/355602.361317
Abstract
Sorting by means of a two-way merge has a reputation of requiring a clerically complicated and cumbersome program. This ALGOL 60 procedure demonstrates that, using recursion, an elegant and efficient algorithm can be designed, the correctness of which is easily proved [2]. Sorting n objects gives rise to a maximum recursion depth of [log 2 ( n - 1) + 2]. This procedure is particularly suitable for sorting when it is not desirable to move the n objects physically in store and the sorting criterion is not simple. In that case it is reasonable to take the number of compare operations as a measure for the speed of the algorithm. When n is an integral power of 2, this number will be comprised between ( n × log 2 n )/2 when the objects are sorted to begin with and ( n × log 2 n - n + 1) as an upper limit. When n is not an integral power of 2, the above formulas are approximate.Keywords
This publication has 1 reference indexed in Scilit:
- Algorithm 271: quickersortCommunications of the ACM, 1965