0分,求调
查看原帖
0分,求调
1363161
haoyiran2013楼主2025/5/31 15:34
#include <bits/stdc++.h>
using namespace std;
int a;
long long n[10000000];
long long tem[10000000];

int y = 0;
void merge_sort( int l, int r) {
	if (l >= r)
		return ;
	int mid = l + r >> 1;

	merge_sort( l, mid);
	merge_sort( mid + 1, r);

	int i = l, j = mid + 1, k = 0;
	while (i <= mid && j <= r)
		if (n[i] > n[j] && i < j) {
			y++;


		}
	if (n[i] < n[j]) {
		tem[k ++] = n[i ++];

	} else {
		tem[k ++] = n[j ++];

	}
	while (i <= mid)
		tem[k ++] = n[i ++];
	while (j <= r)
		tem[k ++] = n[j ++];


	for (int i = l, j = 0; i <= r; i ++, j ++) {
		n[i] = tem[j];
	}

	return ;
}

int main() {
	cin >> a;
	for (int i = 0; i < a; i++) {
		cin >> n[i];
	}
	merge_sort(0, a - 1);
//	for (int i = 0; i < a; i ++)
//		cout << n[i] << ' ';
	cout << y ;
	return 0;
}
2025/5/31 15:34
加载中...