`

MergeSort

阅读更多
 MergeSort is a sample solution from the idea Dive - and - Conquer.
I show my code below:
 
java 代码
  1.   
  2. public class MergeSort {   
  3.        
  4.     public static void sort(int[] array, int i, int j) {   
  5.         if (j-i == 1) {   
  6.             if (array[i]>array[j]) {   
  7.                 int tmp = array[i];   
  8.                 array[i] = array[j];   
  9.                 array[j] = tmp;   
  10.             }    
  11.         } else {   
  12.             int mid = (i + j - 1) / 2;   
  13.             sort(array, i, mid);   
  14.             sort(array, mid+1, j);   
  15.             int[] newArray = merge(array, i, mid, mid+1, j);   
  16.             int k = 0;   
  17.             for (int index = i; index<=j; index++) {   
  18.                 array[index] = newArray[k];   
  19.                 k++;   
  20.             }   
  21.         }   
  22.     }   
  23.        
  24.     public static int[] merge(int[] array, int i, int m, int j, int n) {   
  25.         int[] newArray = new int[n-i+1];   
  26.         int k = 0;   
  27.         while ((i<=m) && (j<=n)) {   
  28.             if (array[i]<array[j]) {   
  29.                 newArray[k] = array[i];   
  30.                 i++;   
  31.                 k++;   
  32.             } else {   
  33.                 newArray[k] = array[j];   
  34.                 j++;   
  35.                 k++;   
  36.             }   
  37.         }   
  38.         if (i>m) {   
  39.             for ( ; j<=n; j++) {   
  40.                 newArray[k++] = array[j];   
  41.             }      
  42.         } else {   
  43.             for ( ; i<=m; i++) {   
  44.                 newArray[k++] = array[i];   
  45.             }   
  46.         }   
  47.         return newArray;   
  48.     }   
  49.        
  50.     public static void main(String[] args) {   
  51.         int[] array = {14252630};   
  52.         sort(array, 0, array.length - 1);   
  53.         for (int i=0; i<array.length; i++) {   
  54.             System.out.print(array[i] + " ");   
  55.         }   
  56.     }   
  57. }  
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics