![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
排序
hellotomhaha
这个作者很懒,什么都没留下…
展开
-
归并排序
merge sort归并排序的总体思想:● 先把序列分成两个部分,对每个部分先排序。 ● 对已经分别有序的两个序列,进行合并。合并: 对于要合并的数组 a[]; 先把数组a[] 中的内容复制到辅助数组 aux[]中。 两个指针i、j 分别指向aux[]中两个有序序列的首元素。 从i、j所指的元素中选择小的元素存回数组a[]中;同时更新i、j指针。 如果i、j中有指针已经指向了原创 2017-09-24 15:19:07 · 303 阅读 · 0 评论 -
归并排序-优化
merge sort improvements归并排序的改进:改进1: 归并排序适合n比较大的算法;我们可以在递归时,当递归到比较小的子序列时,使用插入排序。 代码:package mergesort;public class MergeSort { public static int CUTOFF = 7; public static void main(String[原创 2017-09-24 17:01:28 · 497 阅读 · 0 评论 -
归并排序-bottom-up(非递归版本)
Bottom-up mergesort由于之前讨论的归并排序时用到的是递归的方法;而递归会带来很大的开销,本节讨论由底向上的非递归版本的归并排序思想: 对于给定的数组,设置变量sz为每次归并元素的个数。 首先sz为1,也就是每单个元素归并(如:45和23归并成23、45),然后设置sz=sz+sz、也就是2,也就是使得数组中每两个元素归并;依次类推。 图解: 代码:packag原创 2017-09-24 21:00:58 · 1033 阅读 · 0 评论