import java.util.Arrays;
public class MergeSort {
private static void sort(int data[],int left,int right)
{
if(left<right)
{
int center = (left+right)/2;
sort(data,left,center);
sort(data,center+1,right);
merger(data,left,center,right);
}
}
private static void merger(int data[],int left,int center,int right)
{
int array[] = new int[data.length];
int mid = center + 1;
int third = left;
int tmp = left;
while(left<=center&&mid<=right)
{
if(data[left]<data[mid])
{
array[third++]=data[left++];
}
else
{
array[third++]=data[mid++];
}
}
while(left<=center)
{
array[third++]=data[left++];
}
while(mid<=right)
{
array[third++]=data[mid++];
}
while(tmp<=right)
{
data[tmp]=array[tmp++];
}
System.out.println(Arrays.toString(data));
}
public static void main(String [] args)
{
int data[] = {5,6,8,31,56,22,7,8,12,4,1};
sort(data,0,data.length-1);
System.out.println(Arrays.toString(data));
}
}
归并排序
最新推荐文章于 2023-12-11 10:45:47 发布