歸併排序(Merging Sort)不一樣於其餘排序,他是將兩個或者兩個以上的有序表合成一個新的有序表java
歸併排序是創建在歸併操做上的一種有效的排序算法。該算法是採用分治法(Divide and Conquer)的一個很是典型的應用。 算法
將已有序的子序列合併,獲得徹底有序的序列;即先使每一個子序列有序,再使子序列段間有序。若將兩個有序表合併成一個有序表,稱爲2-路歸併。ide
/* * Kiss_My_Love * 2012/8/31 * 歸併排序 **/ public static Object[] mergeSort(Object[] arr,Object[] arr2){ Object[] obj = null; int n=arr.length+arr2.length; obj=new Object[n]; int i,j,k=0; for(i=0,j=0;i<arr.length&&j<arr2.length;){ if((Integer)arr[i]>(Integer)arr2[j]){ obj[k++]=arr2[j++]; }else { obj[k++]=arr[i++]; } } while(i<arr.length){ obj[k++]=arr[i++]; } while(j<arr2.length){ obj[k++]=arr[j++]; } // for(int n1 =0;n1<obj.length;n1++){ // System.out.println(obj[n1]); // } return obj; }