C 歸併排序

2021-10-07 22:37:20 字數 1123 閱讀 6987

遞迴方式,包含3個函式:

merge_sort 歸併排序

merge 融合有序陣列

show_arr顯示陣列

#include

#include

#include

using

namespace std;

#define len(a) sizeof(a)/sizeof(a[0])

//融合有序陣列

void

merge

(int

* arr,

int left,

int mid,

int right)

else

}//有剩下的數字全部加進去

while

(i <= mid)

while

(j <= right)

cout <<

"after merge:"

;for

(int i =

0; i != len_tmp; i++

) cout << endl;

}//歸併排序

void

merge_sort

(int

* arr,

int left,

int right)

//有2個數,判斷大小是否有小到大,不是就替換

if(right - left ==1)

else

return;}

if(left < right)

}//顯示陣列

void

show_arr

(int

* arr,

int len)

cout << endl;

}void

main()

;//顯示原陣列

show_arr

(arr,

len(arr));

//歸併排序

merge_sort

(arr,0,

len(arr)-1

);show_arr

(arr,

len(arr));

cout << endl;

}

c 歸併排序

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

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 ...