1 归并算法的java代码
算法思想:
简单的将原始序列划分成两个子序列
分别对每个子序列进行递归排序
最后将排好序的子序列合并为一个有序序列,即归并过程
先分再合,类似与二叉树的后序周游。
算法分析:
不稳定
总空间代价为O(n)
总时间代价为O(n*logn)
2 归并算法的优化1
归并时从两端开始处理,向中间推进
对merge函数的优化:
3 对归并算法递归的优化
对基本已排序的序列进行直接插入排序,如果序列长度小于某一个值就跳出递归,进行直接插入排序,16为最佳值。
ImprovedInsert类对插入排序进行了重写,重写后的插入排序的代码为: