#include<stdio.h>
void merge_sort(int* A, int x, int y, int* T)
{
if(y - x > 1)
{
int m = x + (y - x)/2;
int p = x, q = m, i = x;
merge_sort(A, x, m, T);
merge_sort(A, m, y, T);
while(p < m|| q < y)
{
if(q >= y || (p < m && A[p] <= A[q])) T[i++] = A[p++];
else T[i++] = A[q++];
}
for(i = x; i < y; i++) A[i] = T[i];
}
}
int main()
{
int a[1000], t[1000], n, i;
scanf("%d", &n);
for(i = 0; i < n; i++) scanf("%d", &a[i]);
merge_sort(a, 0, n, t);
for(i = 0; i < n; i++) printf("%d ", a[i]);
return 0;
}
归并排序1
最新推荐文章于 2023-09-03 20:36:33 发布