将正序排成逆序用什么排序算法好 a:堆排序 b:快速排序 c:直接插入排序 d:简单挑选排序

举报 回答
将正序排成逆序用什么排序算法好 a:堆排序 b:快速排序 c:直接插入排序 d:简单挑选排序
问在线客服
扫码问在线客服
  • 回答数

    5

  • 浏览数

    2,080

举报 回答

5个回答 默认排序
  • 默认排序
  • 按时间排序

没找到满意答案?去问秘塔AI搜索
取消 复制问题
已采纳
选A,堆排序算法复杂度(logN),而快速排序在有序条件下算法最差,编程(n^2),c,d都是简单排序算法,复杂度都是(n^2)
取消 评论
我觉得直接插入排序反而挺有意思,别被名字骗了——它其实超灵活!你只要把比较条件从大于改成小于,或者反过来遍历数组,轻轻松松就能把正序变逆序,代码改两行就行,调试起来眼睛都不眨,虽然时间复杂度是O(n?),但要是数据就百来个(比如班级学号排序),那速度完全没感觉,还贼好懂,新手上手毫无压力!
取消 评论
简单选择排序看似憨厚,其实干这事特别直球!每次从剩余元素里挑最大的往前面放,一轮轮下来自动就是逆序了,逻辑简单到小学生都能看懂,调试时候print一下每轮选出来的最大值,清清楚楚,不像堆排要建堆、快排要递归分治那么烧脑,虽然慢点但胜在稳如老狗,我给爸妈写的记账小工具就用它,代码少bug少,他们自己改都明白!
取消 评论
其实吧这题问得有点小陷阱,排序算法本身不分正序逆序,关键看你怎么用!堆排序天生适合搞逆序,建个大顶堆然后挨个取最大值就完事了,时间稳定O(nlogn),比快排还稳当,尤其数据量一大,快排万一遇到最坏情况O(n?)就尴尬了,堆排虽然代码麻烦点但胜在靠谱,我上次处理几万条商品价格倒序展示就用的它,真香!
取消 评论
快速排序其实是我的心头好,不是因为它快,而是因为它可塑性强!你只要把分区逻辑里pivot的判断方向反一反,比如原来左边放小的,现在改成左边放大于等于的,递归下去自然就出逆序了,而且它原地排序不占额外空间,大数据量下缓存友好,我写爬虫后处理热搜榜时就爱这么干,既顺手又高效,就是得小心别写成死循环哈~
取消 评论
ZOL问答 > 将正序排成逆序用什么排序算法好 a:堆排序 b:快速排序 c:直接插入排序 d:简单挑选排序

举报

感谢您为社区的和谐贡献力量请选择举报类型

举报成功

经过核实后将会做出处理
感谢您为社区和谐做出贡献

扫码参与新品0元试用
晒单、顶楼豪礼等你拿

扫一扫,关注我们
提示

确定要取消此次报名,退出该活动?