归并排序
算法思想:将初始待排的N个记录看成n个有序的子序列,每个子序列的长度为1,然后两两合并,得到[n/2]个长度为2或1的有序子序列;
再两两归并,直到得到一个长度为N的有序序列为止。
总结:1、与快速排序和堆排序相比,归并排序的最大特点是,它是一种稳定的排序方法。
2、空间复杂度为O(N),需要使用一个辅助数组,长度为N.
3、 时间复杂度为O(NlogN).实用性较差。
public class MergeSort {
public static void merge(int[] data,int[] temp,int low,int mid, int high){
int i=low,j=mid+1,k=0;
for(;i<=mid&&j<=high;k++){
if(data[i]<data[j])temp[k]=data[i++];
else temp[k]=data[j++];
}
while(i<=mid){