美文网首页
关于c语言冒泡和选择排序的时间复杂度的深入分析。

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

作者: 爱在夏天13 | 来源:发表于2018-03-28 13:38 被阅读0次

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

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

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

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

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

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

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

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

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

    相关文章

      网友评论

          本文标题:关于c语言冒泡和选择排序的时间复杂度的深入分析。

          本文链接:https://www.haomeiwen.com/subject/lubycftx.html