摘要:
前面講了插入排序,交換排序,選擇排序,下面接著來講歸并排序。
歸并排序(Merge Sort)是利用"歸并"技術來進行排序。歸并是指將若干個已排序的子文件合并成一個有序的文件。
歸并排序
基本思想:設兩個有序的子序列(相當于輸入序列)放在同一序列中相鄰的位置上:array[low..m],array[m + 1..high],先將它們合并到一個局部的暫存序列 temp (相當于輸出序列)中,待合并完成后將 temp 復制回 array[low..high]中,從而完成排序。
在具體的合并過程中,設置 i,j 和 p 三個指針,其初值分別指向這三個記錄區的起始位置。合并時依次比較 array[i] 和 array[j] 的關鍵字,取關鍵字較?。ɑ蜉^大)的記錄復制到 temp[p] 中,然后將被復制記錄的指針 i 或 j 加 1,以及指向復制位置的指針 p 加 1。重復這一過程直至兩個輸入的子序列有一個已全部復制完畢(不妨稱其為空),此時將另一非空的子序列中剩余記錄依次復制到 array 中即可。 閱讀全文
posted @ 2011-03-13 15:27
飄飄白云
閱讀(671)
評論(0)
推薦(0)
浙公網安備 33010602011771號