排序算法相关的时间复杂度和进程稳定性(下)

一、选择排序
构建有序区域(器皿)和无序区域(器皿),数据序列组中涉及的所有数据开始时默认全部存储在无序区域内(开始时默认有序区域内存中不存在任何数据),然后每轮动作都是从无序区域剩余的数据中选择出一个极致的元素(升序:选择最小的元素/降序:选择最大的元素)直接补充到有序区域的后面,直到最后整个数据序列组中涉及的所有数据元素全部进入有序区域。
二、堆排序
堆 排序算法流程图解
在这里插入图片描述
在这里插入图片描述
堆(二叉树式)插入:每次插入动作都是将新数据元素放在已有序的二叉树分支数据序列组最后,从这个新数据元素的上级父结点处到根结点处所在分支必定是一个有序的数列分支,将这个新数据元素插入到这个有序数列分支中即完成插入阶段动作。
堆(二叉树式)删除:插入动作完成后将最后一个数据元素的内容值赋给根结点器皿,然后再从根结点器皿处开始进行一次从上向下的有序化调整。调整时先在左右儿子结点中找最小的,如果父结点比这个最小的子结点还小说明不需要调整了,反之将父结点和其子节点交换后再进一步考虑后面的结点。相当于从根结点处开始将一个数据元素在有序数列中进行“下沉”。因此,堆的插入和删除非常类似直接插入排序,只不过是在二叉树上进行插入过程。所以可以将堆排序形容为“树上插”。
三、归并排序(递归实现)
逻辑难度较低+ 多轮耗时 == 逻辑难度较高耗时少
低门槛时效性低/高门槛时效性高
不考虑耗时长短只追求问题的解决:采用逻辑难度较低+ 多轮耗时机制,将本身复杂的问题需求进行分割,分割成一系列更加简单的简单问题简单需求单元,对简单问题简单需求单元逐个的解决处理分析,待所有的简单问题简单需求单元都被解决之后各自产生相应的简单效果结果值,对全部的简单效果简单结果值进行累加也就是把已经被解决的简单问题简单需求单元进行合并组合累积,最终完成整个复杂问题的研究处理解决。

递归合并排序:分割数据序列组(divide),不断的把数据序列组分割为二,不断实施分割然后一直分到每个小部分的小数据序列组最多只有两个数据元素的小数据序列;合并数据序列组(Merge),不断的合并两个已经内部有序的子序列,整体基本有序直至所有数字全部有序。
四、基数排序(桶排序)
个十百千万十万。。。。。。(基数地位逐渐升高级别作用增大)
基数排序:首先根据数字元素内容的个位分配到某个桶器皿里面,在桶器皿内部进行内部参照各位自排序,然后将数字元素再输出(串起来);然后根据十位基数进行再次分桶,继续桶内参照十位自动排序,再将数字元素再输出串起来。直至所有位基数被比较完,所有数字已经有序。
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

HaiJunYa

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值