归并

网恋被骗五毛  •  11个月前


include <bits/stdc++.h>

using namespace std; const int N = 1e5 + 5; int arr[N], temarr[N];

void mosort(int left, int right) {

if (left == right)
	return;
int mid = (left + right) / 2;
mosort(left, mid);
mosort(mid + 1, right);
int left_pos = left, right_pos = mid + 1, pos = left;
while (left_pos <= mid && right_pos <= right) {
	if (arr[left_pos] <= arr[right_pos])
		temarr[pos++] = arr[left_pos++];
	else
		temarr[pos++] = arr[right_pos++];
}
while (left_pos <= mid)
	temarr[pos++] = arr[left_pos++];
while (right_pos <= right)
	temarr[pos++] = arr[right_pos++];
for (int i = left; i <= right; i++)
	arr[i] = temarr[i];

}

int main() {

int n;
cin >> n;
for (int i = 1; i <= n; i++)
	cin >> arr[i];
mosort(1, n);
for (int i = 1; i <= n; i++)
	cout << arr[i]<<" ";

}


评论:

请先登录,才能进行评论