c 歸併排序

2021-06-13 21:15:01 字數 724 閱讀 7549

1.需求:將乙個陣列通過歸併排序排成有序陣列

2.思想:歸併排序是分治法的乙個典型應用,將兩個有序的序列合併成乙個有序的序列稱為歸併,歸併排序,通過將陣列分成若干個有序的序列,當拆分成只有乙個數時認為是有序的,然後將這些序列歸併。這裡需要用到遞迴。

3.實現:

public class msort

///

/// 歸併排序

///

/// 指向需歸併運算元組的左邊界

/// 指向需歸併運算元組的右邊界

public void mergesort(int left,int right)

}public void merge(int left,int mid,int right)

else

k++;

}if (i <= mid)

if (j <= right)

for (int n = 0; n < temparr.length; n++)}}

4.測試**:

msort m = new msort();

m.arr = new int ;

m.mergesort(0, m.arr.length - 1);

for (int i = 0; i < m.arr.length - 1; i++)

console.write("\n");

5.執行結果:

6.總結:歸併排序為時間複雜度o(nlogn)

C 歸併排序

include using namespace std void mergesort int array,int start,int end 若某乙個子陣列的元素沒有取完,則全部並於臨時空間 while left idxarray left idx while right idxarray righ...

C 歸併排序

歸併排序 merge sort 是利用歸併的思想實現的排序方法,該演算法採用經典的分治 divide and conquer 策略將問題分成一些小的問題然後遞迴求解,即分而治之。遞迴 includeusing namespace std void merge int arr,int low,int ...

C 歸併排序

歸併排序是建立在歸併操作基礎上的一種有效的排序演算法,採用分治的思想,將已有序的子串行合併,得到完全有序的序列 即先使每個子串行有序,再使子串行段間有序。若將兩個有序表合併成乙個有序表。稱為二路歸併,歸併排序是穩定排序。歸併操作,指是將兩順序序列合併成乙個順序序列的方法。如 設有數列 初始狀態 6,...