归并排序有两种方式:
(1): 自底向上的方法
自底向上的基本思想是:第1趟归并排序时,将待排序的文件R[1..n]看作是n个长度为1的有序子文件,将这些子文件两两归并,若n为偶数,则得到n/2个长度为2的有序子文件;若n为奇数,则最后一个子文件轮空(不参与归并)。故本趟归并完成后,前n/2 - 1个有序子文件长度为2,但最后一个子文件长度仍为1;第2趟归并则是将第1趟归并所得到的n/2个有序的子文件两两归并,如此反复,直到最后得到一个长度为n的有序文件为止。
初始化:{43,23,54,44,2,7,19}
第一趟:{23,43,44,54,2,7,19}
第二趟:{23,43,44,54,2,7,19}
第三趟:{2,7,19,23,43,44,54}
第一趟 【43,23】【54,44】【2,7】【19】
第二趟 【23,43,44,54】【2,7,19】
第三趟 【2,7,19,23,43,44,54】
// 归并排序
public void Merge(List<int> seqlist,int len)
{
int<