public class MegerSort
{
public void meger(int a[],int left,int mid,int right)//将两个已经排好的数组合并成一个数组
{
int temp[]=new int[align=right];
int flag=left;
int i=left;
while(left<right)
{
if(left<=mid&&(mid>right||a[align=left]<=a[mid]))
temp[flag++]=a[left++];
else
temp[flag++]=a[mid++];
}
for(int k=i;k<=right;k++)
{
a[k]=temp[k];
//System.out.print(a[k]+"\t");
}
}
public void megersort(int a[],int left,int right)//合并排序
{
int mid=(left+right)/2;
if(left!=right)
{
megersort(a,left,mid);
megersort(a,mid+1,right);
meger(a,left,mid,right);
}
}
public static void main(String args[])
{
int a[]=new int[] {3,5,7,9,4,2,5,1,6};
MegerSort check=new MegerSort();
check.megersort(a,1,7);
for(int i=0;i<9;i++)
{
System.out.print(a[i]+"\t");
}
}
}