void merge(
int a,
int lo,
int mid,
int hi)
{
int i = lo;
int j = mid +
1;
for (
int k = lo; k <= hi; k++)
aux[k] = a[k];
for (
int k = lo; k <= hi; k++)
if (i > mid)
a[k] = aux[j++];
else if (j > hi)
a[k] = aux[i++];
else if (aux[j] < aux[i])
a[k] = aux[j++];
else
a[k] = aux[i++];
}
void sort(
int a[],
int lo,
int hi)
{
if (hi <= lo)
return;
int mid = lo + (hi - lo)/
2;
sort(a, lo, mid);
sort(a, mid +
1, hi);
merge(a, lo, mid, hi);
}
转载请注明原文地址: https://ju.6miu.com/read-1308621.html