归并排序

来源:互联网 发布:刘涛二手衣店淘宝网址 编辑:程序博客网 时间:2024/06/06 08:26
public class MergeSort {    public static void mergeTwoArray(int[] array, int low, int mid, int high){        int[] temp = new int[array.length];        int k = 0;        int i = low;        int j = mid + 1;        while(i <= mid && j <= high){            System.out.println("a["+i+"]="+array[i]+"  a["+j+"]="+array[j]+"  k="+k);            if(array[i] < array[j]){                temp[k++] = array[i++];            }else {                temp[k++] = array[j++];            }        }        while (i <= mid){            temp[k++] = array[i++];        }        while(j <= high){            temp[k++] = array[j++];        }        System.arraycopy(temp, 0, array, low, k);    }    public static void mergeSort(int[] array, int low, int high){        if(low < high){            int mid = (low + high)/2;            mergeSort(array, low, mid);            mergeSort(array, mid+1, high);            mergeTwoArray(array, low, mid, high);        }    }    public static void main(String[] args){        int[] array = {12,3,11,45,0,666,55,78,2};        mergeSort(array, 0, array.length-1);        for(int d : array){            System.out.print(d + " ");        }    }}
0 0
原创粉丝点击