⛴李恒旭⚔♆§ • 2年前
using namespace std;
void mer(int a[], int low, int mid, int high) {
int i, j, b[1005], k;
for (k = low; k <= high; k++) {
b[k] = a[k];
}
for (i = low, j = mid + 1, k = i; i <= mid && j <= high; k++) {
a[k] = b[i] < b[j] ? b[i++] : b[j++];
}
while (i <= mid) {
a[k++] = b[i++];
}
while (j <= high) {
a[k++] = b[j++];
}
}
void merge(int a[], int low, int high) {
if (low < high) {
int mid = (low + high) / 2;
merge(a, low, mid);
merge(a, mid + 1, high);
mer(a, low, mid, high);
}
}
int main() {
int a[1005], n, i;
cin >> n;
for (int i = 0; i < n; i++) {
cin >> a[i];
}
merge(a, 0, n - 1);
for (i = 0; i < n; i++) {
cout << a[i]<<' ';
}
return 0;
}
评论:
请先登录,才能进行评论