#include <iostream>
using namespace std;
void mysort(int* a , int lo , int hi);
void mymerge(int* a , int lo , int mid , int hi);
int t[10] = {3,7,4,8,6,9,0,5,2,1};
int auk[10];
int main()
{
mysort(t,0,10);
for(int i = 0 ; i < 10 ; i++)
{
cout<<t[i];
}
return 0;
{
if(lo>=hi) return;
int mid = lo + (hi - lo)/2 ;
mysort(a , lo , mid);
mysort(a, mid + 1 , hi);
mymerge(a , lo , mid , hi);
}
//归并过程
void mymerge(int* a , int lo , int mid , int hi)
{
int i = lo ;
int j = mid + 1;
for(int k = lo ; k <= hi ; k++)
{
auk[k] = a[k];
}
for(int k = lo ; k <= hi ; k++)
{
if(i > mid) a[k] = auk[j++];
else if( j > hi) a[k] = auk[i++];
else if(auk[i] > auk[j]) a[k] = auk[i++];
else a[k] = auk[j++];
}
}
#include <cstring>
#include <math.h>
void mysort(int* a , int lo , int hi);
void mymerge(int* a , int lo , int mid , int hi);
int t[10] = {3,7,4,8,6,9,0,5,2,1};
int auk[10];
int main()
{
mysort(t,0,10);
for(int i = 0 ; i < 10 ; i++)
{
cout<<t[i];
}
return 0;
}
//递归过程
{
if(lo>=hi) return;
int mid = lo + (hi - lo)/2 ;
mysort(a , lo , mid);
mysort(a, mid + 1 , hi);
mymerge(a , lo , mid , hi);
}
//归并过程
void mymerge(int* a , int lo , int mid , int hi)
{
int i = lo ;
int j = mid + 1;
for(int k = lo ; k <= hi ; k++)
{
auk[k] = a[k];
}
for(int k = lo ; k <= hi ; k++)
{
if(i > mid) a[k] = auk[j++];
else if( j > hi) a[k] = auk[i++];
else if(auk[i] > auk[j]) a[k] = auk[i++];
else a[k] = auk[j++];
}
}