归并排序
// 当俩个有序的数组 进行归并后 就是一个有序的数组了public class Merge {
private static void merge(int[]arr,int left,int mid,int right) { int i,j,k; int[] temp = new int[arr.length]; for (int t = left ;t <= right; t++) { temp[t] = arr[t]; } for (i = left,j = mid + 1,k = i;i <= mid && j <= right;k++) { if (temp[i] <= temp[j]) { arr[k] = temp[i++]; } else { arr[k] = temp[j++]; } } while (i <= mid) { arr[k++] = temp[i++]; } while (j <= right) { arr[k++] = temp[j++]; } }
public static void mergeSort(int[] arr,int left,int right) { if (left < right) { int mid = (left + right) / 2; mergeSort(arr,left,mid); mergeSort(arr,mid + 1,right); merge(arr,left,mid,right); } }
public static void main(String[] args) { int[] arr = {1,23,1,12,1,31,4,12213}; mergeSort(arr,0,arr.length -1); for (int i : arr) { System.out.println(i); } }}
当俩个有序的数组 进行归并后 就是一个有序的数组了。