Home → Magazine Archive → May 1972 (Vol. 15, No. 5) → Merge sort algorithm [M1] → Abstract

Merge sort algorithm [M1]

By C. Bron

Communications of the ACM, Vol. 15 No. 5, Pages 357-358
10.1145/355602.361317



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 [log2(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 × log2n)/2 when the objects are sorted to begin with and (n × log2n - n + 1) as an upper limit. When n is not an integral power of 2, the above formulas are approximate.

The full text of this article is premium content

0 Comments

No entries found