归并排序
#include
#include
#include
#define N 16
int a[N],b[N];
void init_array(int l,int r){
int i;
srand(time(NULL));
for(i=l;i<=r;i++) a[i]=rand()%100;
}
void show_array(int l,int r){
int i;
for(i=l;i<=r;i++) printf("%3d",a[i]);
for(i=0;ia[i]) min=i;
printf("%d\n",a[min]);}
int find_minR(int l,int r){
if(l==r) return a[l];
int m=(l+r)/2;
int m1=find_minR(l,m);
int m2=find_minR(m+1,r);
return m1=r) return;
int m=(l+r)/2;
merge_sort(l,m);
merge_sort(m+1,r);
merge(l,m,r);
show_array(l,r);
}
#define sort merge_sortint main()
{
init_array(0,N-1);
show_array(0,N-1);
sort(0,N-1);
//show_array(0,N-1);
return 0;
}