您的位置:首页 > 其它

归并排序

2016-05-17 20:27 225 查看
public class MergeSort{
public static void main(String[]args){
int []A={1,0,2,4,7,2,1,-1};
MergeSort(A,0,A.length-1);
for(int i=0;i<A.length;i++){
System.out.print(A[i]+" ");
}
}
public static void MergeSort(int []A,int low,int high){
if(low<high){
int mid=(low+high)/2;
MergeSort(A,low,mid);
MergeSort(A,mid+1,high);
merge(A,low,mid,high);
}
}
public static void merge(int []A,int low,int mid,int high){
int []temp=new int [high-low+1];
int h1=low,h2=mid+1,i=0;
while(h1<=mid&&h2<=high){
if(A[h1]<=A[h2]){
temp[i++]=A[h1++];
}else{
temp[i++]=A[h2++];
}
}
while(h1<=mid){
temp[i++]=A[h1++];
}
while(h2<=high){
temp[i++]=A[h2++];
}

int k=0;
while(low<=high){
A[low++]=temp[k++];
}
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: