2.1.思想
归并排序就是将两个或两个以上的有序表合成一个有序表的过程,将两个有序表合并成一个有序表的过程为2-路归并。假设初始序列含有n个记录,则可看成是n个有序的子序列,每个子序列长度为1,然后两两归并,得到[n/2]个长度为2或1的有序子序列;再两两合并,......,如此重复,直到得到一个长度为n的有序序列为止。
2.2.实例分析
初始关键字序列:49 38 65 97 76 13 27
进行第一次归并:[49 38] [65 97] [76 13] [27]
一趟归并之后:[38 49] [65 97] [13 76] [27]
进行第二次归并:[[38 49] [65 97]] [[13 76] [27]]
二趟归并之后:[38 49 65 97] [13 27 76]
三趟归并之后:[13 27 38 49 65 76 97]
2.3.伪代码
具体算法如算法1所示.
算法1.折半插入排序算法描述.
输入: 一组待排序的数 输出 一组排好顺序的数 |
|