归并排序

来源:互联网 发布:黄岩深孔钻编程招聘 编辑:程序博客网 时间:2024/06/03 15:22

归并排序

package algorithm;import java.util.Arrays;public class MergeSort {private static int[] a={0,2,0,0,0,-1,0,0,0,0,0,-1};public static void mergeArray(int left,int right){if(left>right){return ;}int mid=(left+right)/2;int[] b=new int[right-left+2];int i=left;int j=mid+1;int k=0;while(i<=mid&&j<=right){if(a[i]<a[j]){b[k++]=a[i++];}else{b[k++]=a[j++];}}while(i<=mid){b[k++]=a[i++];}while(j<=right){b[k++]=a[j++];}for(int m=0;m<k;m++){a[left+m]=b[m];}}public static void mergeSort(int left,int right){if(left>=right){return;}int mid=(left+right)/2;mergeSort(left,mid);mergeSort(mid+1,right);mergeArray(left,right);}public static void main(String[] args){mergeSort(0,a.length-1);System.out.println(Arrays.toString(a));}}


原创粉丝点击