AC(递归版)

⛴李恒旭⚔♆§  •  1年前


include <bits/stdc++.h>

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;

}


评论:

请先登录,才能进行评论