遞迴方式,包含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 ...