// Type your C++ code and click the "Run Code" button!
// Your code output will be shown on the left.
// Click on the "Show input" button to enter input data to be read (from stdin).
#include <iostream>
using namespace std;
void mergeArray(int a[], int beg, int mid, int end, int tmp[]) {
int i = beg, j = mid+1;
int m = mid, n = end;
int k = 0;
while(i <= m && j <= n) {
if(a[i] > a[j])
tmp[k++] = a[j++];
else
tmp[k++] = a[i++];
}
while(i <= m) tmp[k++] = a[i++];
while(j <= n) tmp[k++] = a[j++];
for(i = 0; i < k; ++i)
a[beg+i] = tmp[i];
}
void mergeSort(int a[], int beg, int end, int tmp[]) {
if(beg < end) {
int mid = (beg + end) / 2;
mergeSort(a, beg, mid, tmp);
mergeSort(a, mid+1, end, tmp);
mergeArray(a, beg, mid, end, tmp);
}
}
void printArr(int a[], int n) {
for(int i = 0; i < n; ++i) {
cout<<a[i]<<" ";
}
cout<<endl;
}
int main() {
int a[] = {1, 5, 9, 4, 6, -3, -7, 9, 19, 8};
int tmp[10];
printArr(a, 10);
mergeSort(a, 0, 9, tmp);
printArr(a, 10);
return 0;
}
欢迎关注微信公众号——计算机视觉:

2061

被折叠的 条评论
为什么被折叠?



