归并排序

来源:互联网 发布:linux命令执行漏洞函数 编辑:程序博客网 时间:2024/06/03 05:17
public class MergeSort {private static int[] b;public static void mergeSort(int[] a){if(a == null) return;b = new int[a.length];merge(a, 0, a.length-1);}private static void merge(int[] a, int start, int end){if(start >= end){return;}int mid = (start+end)/2;merge(a, start, mid);merge(a, mid+1, end);int i = start;int j = mid+1;int k = 0;while((i<=mid) && (j<=end)){if(a[i] < a[j]){b[k] = a[i];i++;}else{b[k] = a[j];j++;}k++;}if(i > mid){while(j<=end){b[k] = a[j];j++;k++;}}if(j > end){while(i<=mid){b[k] = a[i];i++;k++;}}for(int m=start; m<=end; m++){a[m] = b[m-start];}}/** * @param args */public static void main(String[] args) {int[] a = {7,2,4,8,3,5,1,9,0,6};MergeSort.mergeSort(a);Tools.printArray(a);}}