1. 程式人生 > >快排和並歸

快排和並歸

時空 family blue span 第一個 把他 長度 一個 ++

1,
技術分享


2,
二路並歸排序:設數組a中存放有n個數據元素,初始把他們看成是n個長度為1的有序子數組,
然後從第一個子數組開始把相鄰的子數組兩兩合並,得到n/2的整數上界個長度為2的有序子數組,
當n為基數時最後一個新的有序子數組長度為1;對這些新數組再兩兩歸並,最後得到一個長度為n的有序數組為止。
對於二路的並歸排序類似。
技術分享

技術分享

2.1計算相鄰兩子數組起始下標:
技術分享
}

2.2相鄰兩子數組並歸
技術分享

2.3並歸排序後的臨時空間寫回數組。
for (i = l1; i < n; i++, m++)swap[m] = a[i];

快排和並歸