Day5 歸併排序

2021-09-27 07:01:48 字數 623 閱讀 8321

歸併排序

1.歸併排序是建立在歸併操作上的一種有效排序演算法,它是分治法的典型應用。將已有的子串行合併,

,得到完全有序的序列;先使每個子串行有序,再使子串行段間有序。若將兩個有序表合併成乙個

合併成乙個有序表,稱二路合併。

遞迴法1.申請空間,使其大小為兩個已經排序序列之和,這個空間是用來存放合併後的序列。

2.設定兩個指標,起始位置分別為兩個已經排序序列的起始位置。

3.將兩個指標所指的元素進行比較,選出相對較小的放入到要合併的空間,並移動指標到下乙個位置。

4.重複3步驟直到某指標達到序列尾部

5.最後在把剩下的所有元素直接複製到合併序列尾部

static void fun1(int arr)

static void fun2(int arr, int temp, int left, int right)

}// 合併兩個有序子串行

static void fun3(int arr, int temp, int left, int middle, int right)

while (i <=middle)

while ( j<=right)

//把資料複製回原陣列

for (i=0; i}

排序 5 歸併排序

將包含n個元素的初始序列,看成n個有序的子串行,每個序列的長度為1,然後兩兩歸併.直到得到長度為n的有序序列。遞迴和非遞迴兩種方法 5.歸併排序 遞迴 recursion 融合 void merging int list1,int list1 size,int list2,int list2 siz...

演算法 day5 選擇排序

選擇排序是一種簡單直觀的排序演算法,它的工作原理是每一次從待排序的資料元素中選出最小 最大 的乙個元素,存放在序列的起始位置,然後,再從剩餘未排序元素中繼續尋找最小 大 元素,然後放到已排序序列的末尾。以此類推,直到全部待排序的資料元素排完。選擇排序是不穩定的排序方法。選擇排序,內層迴圈,每一圈選出...

排序小結 5 歸併排序

歸併排序 merge sort 是利用 歸併 技術來進行排序。歸併是指將若干個已排序的子檔案合併成乙個有序的檔案。兩路歸併演算法 1 演算法基本思路 設兩個有序的子檔案 相當於輸入堆 放在同一向量中相鄰的位置上 r low.m r m 1.high 先將它們合併到乙個區域性的暫存向量r1 相當於輸出...