c语言选择排序法复杂度,关于c语言冒泡和选择排序的时间复杂度的深入分析。...

网上关于这个问题的描述繁多,但并不一定找准了问题的关键。

两者本质都是任意2个数的比较,然后符合要求的,再做数值的交换。这里有一个重要的点需要提出来,巫差异的数组元素排序,冒泡和选择是一致的,区别在于交换形式,选择侧重一步到位,冒泡关注循序渐进。举个简单的例子,可能你在用选择排序时获取首位的最大值只需要2次交换,但后续处理的却较多,相比而言,冒泡排序获取首位最大值可能就需要4次或更多,但其后续的逻辑就比选择排序要好。

两者在时间复杂度上的差异的关键,

小司机觉得是涉及到相同元素的处理。

选择一旦交换,后续相同数字不做处理

冒泡一旦交换,就可能是一大波僵尸的到来。毫无意义的比较。因此如果在设计冒泡排序时,增加对之前数字的相同比较就可以提高冒泡的效率。

但仍不敌选择,因为选择是关注的是结果。

即及时的最值每次都参与比较,相当于不需要考虑重复数字的比较。

小司机最近准备完善一些c需要的算法,整理后给大家分析一下。如果小司机说的有不对的地方还请指教,小司机最近在找工作,希望顺利吧。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值