歸併排序的基本思想

2021-10-18 10:39:01 字數 871 閱讀 4179

歸併,就是把元素合併在一起,在這裡我們主要是通過把資料元素分開,當陣列元素細化後將它在合併起來。

在歸併演算法中,主要用到了分治和合併的兩種思想。分治:將陣列元素細化,分成n多個單個元素序列。合併:一步一步將分治的陣列元素合併起來,合併的同時進行順序排序。

//歸併排序

void

merge

(int tr2,

int tr1,

int i,

int m,

int n)

if(i <= m)

if(j <= n)

}void

msort

(int sr,

int tr1,

int num,

int array_length)

else

}void

mergesort

(sqlist* l)

// 歸併排序主函式

對於具體的過程分析我們用圖來展示:

我們把分治過程和合併過程分開展示(實際過程分治和合併時同時進行的)

對於分治遞迴中的紅色框圖是第一部,緊接著進行合併,隨後在驚醒藍色框圖中的分治,接著進行合併,依據這樣的方式不斷將原陣列進行分治合併,便可得到有序的陣列序列。

以上是鄙人對該演算法的理解,若與實際演算法思想有出入,還請多多指教。

希爾排序基本思想

基本思想 先取乙個小於n的整數d1作為第乙個增量,把檔案的全部記錄分成d1個組。所有距離為dl的倍數的記錄放在同乙個組中。先在各組內進行直接插人排序 然後,取第二個增量d2 1重複上述的分組和排序,直至所取的增量dt 1 dt t l 2 1 即所有記錄放在同一組中進行直接插入排序為止。該方法實質上...

氣泡排序基本思想

原理 比較兩個相鄰的元素,將值大的元素交換至右端。每次獲得 最大 的數 思路 依次比較相鄰的兩個數,將小數放在前面,大數放在後面。即在第一趟 首先比較第1個和第2個數,將小數放前,大數放後。然後比較第2個數和第3個數,將小數放前,大數放後,如此繼續,直至比較最後兩個數,將小數放前,大數放後。重複第一...

氣泡排序的基本思想

1 氣泡排序的基本思想 氣泡排序是交換排序中一種簡單的排序方法。它的基本思想是對所有相鄰記錄的關鍵字值進行比效,如果是逆順 a j a j 1 則將其交換,最終達到有序化 其處理過程為 1 將整個待排序的記錄序列劃分成有序區和無序區,初始狀態有序區為空,無序區包括所有待排序的記錄。2 對無序區從前向...