求助!!!测试点1wa,其他都re
查看原帖
求助!!!测试点1wa,其他都re
1065168
wanghetian楼主2023/10/25 20:29
#include <bits/stdc++.h>
using namespace std;
int a[6005], b[6005], ans;

void merge (int l, int r ) {
	if (l == r) {
		return ;
	}
	int mid = (l + r) / 2;
	int i = 1, j = mid + 1, tot = 1;
	while (i <= mid &&  j <= r) {
		if (a[i] <= a[j]) {
			b[tot++] = a[i];
			i++;
		} else {
			b[tot++] = a[j];
			j++;
		}
	}
	while (i <= mid) {
		b[tot++]
		    = a[i];
		i++;
	}
	while (j <= r) {
		b[tot++]
		    = a[j];
		j++;
	}
	for (int i = 1; i <= r; i++) {
		a[i]
		    = b[i];
	}
	return ;
}

void mergesort(int l, int r) {
	if (l < r) {
		int mid = (l + r) / 2;
		mergesort(l, mid);
		mergesort(mid + 1, r);
		merge(l, r);
	}
}

int main() {
	int n;
	scanf("%d", &n);
	for (int i = 1; i <= n; i++) {
		scanf("%d", &a[i]);
	}
	mergesort(1, n);
	for (int i = 1; i <= n; i++) {
		printf("%d ", a[i]);
	}
	return 0;
}
2023/10/25 20:29
加载中...