直接选择排序真的在堆排序之前一无是处吗?

在这里插入图片描述
之前在本校考研群里面看到,在群友不熟练的时间复杂度分析之下,选择排序和堆排序时间复杂度差了一个数量级,影响了我的一判断为什么不用选择排序,没有考虑系数加上时间太晚我直接咆哮:why not 选择排序?
在这里插入图片描述

堆排序加上建堆的过程应该和选择排序一个数量级,他的分析没有加建堆直接起飞,
下面是我的思考:

在这里插入图片描述
那么我就去查系数了,推导的话太冗杂,之前看过,无非是数学操作
堆排序建堆最坏情况:
在这里插入图片描述
选择排序要用k次数去乘以n一直到n-k+1

就算拿堆排序建堆最坏情况来比较
在这里插入图片描述
可以看出来直接选择排序在该类问题上没有优势
那他的优势在哪里??
直接选择排序有啥用呢?
虽然直接选择排序并不是最快的排序算法,但它有以下几个优点:

简单直观:直接选择排序的实现非常简单,易于理解和实现。

内存消耗小:直接选择排序算法的内存消耗较小,不需要额外的空间。

对小规模数据排序效率高:当数据量较小的时候,直接选择排序的效率比较高,因为它只需要比较n-1次(n为数据的个数)。

不会损坏原始序列的稳定性:直接选择排序不会改变两个相等元素的相对位置,因此是一种稳定的排序算法。
————————————————
版权声明:本文为CSDN博主「originalHSL.」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/originalHSL/article/details/131055900

在快排的优化方法中小数据量直接插入排序具有优势,但是在最上面的问题中一直不占有优势。
题目的意思也是要考虑建堆后的优势,但是涉及稳定性就放弃堆排序。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值