Public classmerge{//recursive into small parts Public voidMerge_sort (int[] Arrays,intStartintend) { if(start<end) { intM= (start+end)/2; Merge_sort (ARRAYS,START,M); Merge_sort (Arrays,m+1, end); Combin_arrays (Arrays,start,m,end); } } //Merging Arrays Public voidCombin_arrays (int[] Arrays,intStartintMintend) { intlength=end-start+1; inttemp[]=New int[Length];//The array used to store the comparison, using the copy back to the original array intI=start; intj=m+1; intC=0; while(I<=m &&j<=end) { if(arrays[i]<Arrays[j]) {Temp[c]=Arrays[i]; I++; C++; }Else{Temp[c]=Arrays[j]; J++; C++; } } while(i<=m) {Temp[c]=Arrays[i]; I++; } while(j<=end) {Temp[c]=Arrays[j]; J++; } C=0; for(intT=start;t<=end;t++,c++) {Arrays[t]=Temp[c]; } SNP (arrays); } //Print Array Public voidSNPint[] arrays) { for(intI=0; i<arrays.length;i++) {System. out. Print (arrays[i]+" "); } System. out. println (); } Public Static voidMain (string[] args) {Merge m=NewMerge (); inta[]={5,4,Ten,8,7,9}; M.merge_sort (A,0, a.length-1); }}
Merge Sort method