标签:
归并排序是分治法的典型代表。
分治法:
分:将一个问题分解为更小的问题。
治:将更小的问题解决。
并:将解决好的更小问题并起来就是大问题的结果。
public class MergeSort { public static void main(String[] args) { int[] a={3,7,2,9,15,11}; mergesort(a,0,a.length-1); for(int i:a) System.out.print(i+"\t"); } private static void mergesort(int[] a,int left,int right){ int mid=(right+left)/2; if(left<right){ mergesort(a,left,mid); mergesort(a,mid+1,right); merge(a,left,mid,right); } } private static void merge(int[] a,int left,int mid,int right){ int[] c=new int[a.length]; int i=left,j=mid+1,t=left; while(left<=mid&&j<=right){ if(a[left]<=a[j]){ c[t++]=a[left++]; } else{ c[t++]=a[j++]; } } while(j<=right){ c[t++]=a[j++]; } while(left<=mid){ c[t++]=a[left++]; } while (i <= left) { a[i] = c[i++]; } } }
坚持每天更新!!每天回顾!!
标签:
原文地址:http://www.cnblogs.com/Rui-Jia/p/5419614.html