void mearge_sort(int * array, int left, int right) { int mid; if(left < right){ mid = (left+right)/2; mearge_sort(array, left, mid); mearge_sort(array, mid+1, right); mearge(array, left, right, mid); } }
void mearge_sort(int a[],int size) { if(size>1) { int b[size/2+1],c[size/2+1],size_b,size_c; partition(a,b,c,size);//partition if(size&1) size_b=size/2 +1; else size_b=size/2; size_c=size-size_b; ///sort mearge_sort(b,size_b);printf("line---%d.. \n",__LINE__); mearge_sort(c,size_c); ///merge mearge(a,b,c,size_b,size_c); }else return; }
void main() { //mearge sort int i,a[8]={1,2,8,9,4,6,7},b[8],c[8]; mearge_sort(a,7); //partition(a,b,c,7); //mearge(a,b,c,4,3); for(i=0;i<7;i++) printf("%d ",a[i]); }