package com.xxzzycq.sort;
public class MergeSort
{
public static void mergeSort(Comparable[] data, int min, int max)
{
if(min < max)
{
int mid = (min + max)/2;
mergeSort(data, min, mid);
mergeSort(data, mid + 1, max);
merge(data, min, mid, max);
}
}
public static void merge(Comparable[] data, int first, int mid, int last)
{
Comparable[] temp = new Comparable[data.length];
int first1 = first;
int last1 = mid;
int first2 = mid + 1;
int last2 = last;
int index = first1;
while((first1 <= last1)&&(first2 <= last2))
{
if(data[first1].compareTo(data[first2]) < 0)
{
temp[index] = data[first1];
first1++;
}
else
{
temp[index] = data[first2];
first2++;
}
index++;
}
while(first1 <= last1)
{
temp[index] = data[first1];
first1++;
index++;
}
while(first2 <= last2)
{
temp[index] = data[first2];
first2++;
index++;
}
for(index = first; index <= last; index++)
{
data[index] = temp[index];
}
}
public static void display(Comparable[] data)
{
for (int i = 0; i < data.length; i++)
{
System.out.print(data[i]);
System.out.print(" ");
}
}
public static void main(String[] args)
{
Integer[] data = new Integer[]{45, 65, 30 , 85, 69, 78,5, 69, 987, 42, 15};
mergeSort(data, 0, data.length - 1);
display(data);
}
}
java排序之肆------归并排序代码
最新推荐文章于 2022-12-22 08:23:18 发布