归并排序 C++(不调用库函数)
#include#include void mergeSort(int *a, int L, int R); void merge(int *a,int i,int m,int j); int main(void){ int i=0; int array[10]={5,8,9,4,1,3,8,4,0,2}; mergeSort(array,0,9); for(i=0;i<10;i++){ printf("%d,",array[i]); } } void mergeSort(int *a, int i, int j){ int m=0; if(i!=j){ int m=(i+j)/2; mergeSort(a,i,m); mergeSort(a,m+1,j); merge(a,i,m,j); } } void merge(int *a,int i,int m,int j){ int b[j-i+1]; int p=0; int p1=i; int p2=m+1; while(p1<=m&&p2<=j){ b[p++]=a[p1]>a[p2]? a[p2++]:a[p1++]; } while(p1<=m){ b[p++]=a[p1++]; } while(p2<=j){ b[p++]=a[p2++]; } for(p=0;p



