排序
埋没。
这个作者很懒,什么都没留下…
展开
-
排序算法之希尔算法
参考了大佬的博客:算法学习总结(2)----一杯甜酒希尔算法是一种优化过后的插入算法,它采用增量序列分组的方式将一个序列逐渐分成多个小组进行插入排序(感觉类似于多重背包问题中的二进制优化),在一定程度上优化了插入排序的时间复杂度。来看下希尔排序的基本步骤,首先我们得确认一个增量,为了方便起见,我们选择的增量序列为{length/2,(length/2)/2,...,1},当然这个序列不是最优的...原创 2019-09-09 21:38:13 · 157 阅读 · 0 评论 -
算法笔记之归并排序
归并排序与选择排序相同,归并排序也不受数据具体值的影响,只与数据的数量有关,时间复杂度为T(n)=nlogn且运行时非常稳定,但缺点是会占用额外的使用空间。归并排序是一个典型的分治法的使用案例。简单来说,是将要排序的序列分成两个子序列,再分别对这两个子序列进行递归,到不能再分的时候进行排序,然后逐级的合并上去。即由多个有序子序列合并成为一个有序主序列。步骤如下:1.将序列分成两个子序列;2....原创 2019-09-11 16:46:33 · 180 阅读 · 0 评论 -
算法笔记之快速排序
快排也是属于分治法的一种,它的具体思想是从要排序的序列中选择一个基准也叫枢轴,把比基准小的排在一边,把比基准大的排在一边,然后以基准为界限将序列分为左右两个子序列,然后递归地对每个序列进行同样地操作,直到序列内元素为1。当递归结束时,此时主序列已被排好了序,并且相较于归并排序不需要额外地内存空间,但是缺点是不够稳定,排序的速度取决于基准的选择,并且最好情况和最坏情况相差比较大。最好情况:T(n)...原创 2019-09-11 23:42:07 · 150 阅读 · 0 评论