#include<bits/stdc++.h>
using namespace std;
int n;
void mergearray(int a[], int l, int mid, int r, int temp[]) {
int i = l, j = mid + 1;
int m = mid, n = r;
int k = 0;
while(i <= m && j <= n) {
if(a[i] <= a[j]) {
temp[k++] = a[i++];
}
else {
temp[k++] = a[j++];
}
}
while(i <= m) {
temp[k++] = a[i++];
}
while(j <= n) {
temp[k++] = a[j++];
}
for(i = 0; i < k; i++) {
a[l++] = temp[i];
}
}
void mergesort(int a[], int l, int r, int temp[]) {
if(l < r) {
int mid = (l + r) >> 1;
mergesort(a, l, mid, temp);
mergesort(a, mid + 1, r, temp);
mergearray(a, l, mid, r, temp);
}
}
int main() {
cin >> n;
ans = 0;
int arr[10005], temp[10005];
for(int i = 0; i < n; i++) {
cin >> arr[i];
}
mergesort(arr, 0, n - 1, temp);
for(int i = 0; i < n; i++) {
cout << arr[i] << " ";
}cout << endl;
return 0;
}
归并排序
最新推荐文章于 2024-12-15 17:47:59 发布