二路归并排序
”2路“归并,把两个已经有序的序列合并成一个。
核心操作:把数组内的两个有序序列归并成一个。
- 空间复杂度O(n)
- 时间复杂度O(nlog2n)
//归并排序
int *B = (int *)malloc (n * sizeof(int)); //定义足够大的数组B
void Merge(int A[], int low, int mid, int high){
int i,j,k;
for(k=low; k<=high; k++){ //将A复制给B
B[k] = A[k];
}
for(i=low, j=mid+1, k=i; i
void MergeSort(int A[], int low, int high){
if(low