public class Guibingpaixu { public static void main(String args[]){ int num[]=new int[]{4,3,2,1,7,8,9,0,11,23,56,12}; printnum(num); int res[]=new int[num.length]; guibing(0,num.length-1,num,res); printnum(res); } public static void guibing(int low,int high,int num[],int res[]){ if(low<high){ int mid=(low+high)/2; int l_res[]=new int[mid-low+1]; int r_res[]=new int[high-mid]; guibing(low,mid,num,l_res); guibing(mid+1,high,num,r_res); merge(l_res,r_res,res); }else{ res[0]=num[low]; } } public static void merge(int l_res[],int r_res[],int res[]){ int i=0,j=0; while(i<l_res.length && j<r_res.length){ if(l_res[i]>r_res[j]){ res[i+j]=r_res[j]; j++; }else{ res[i+j]=l_res[i]; i++; } } while(i<l_res.length){ res[i+j]=l_res[i]; i++; } while(j<r_res.length){ res[i+j]=r_res[j]; j++; } } public static void printnum(int num[]){ for(int i=0;i<num.length;i++){ System.out.print(num[i]+" "); } System.out.println(); } }
归并排序
最新推荐文章于 2024-12-15 17:47:59 发布