为什么冒泡排序最坏情况下比较次数都是n(n-1)/2
高岢馨 圈内达人 2016-02-29 21:11:42
1903 4 0
问题来自: 排序算法
对长度为10的线性表进行冒泡排序,最坏情况下需要比较的次数为( )
A. 9
B. 10
C. 45
D. 90
答案:C
解析:最坏情况下比较次数都是n(n-1)/2,则结果为45。所以选择C。

共 4 个回答

    原鑫鑫 资深达人 3402天前

    记住就好,这是常识

    高岢馨 圈内达人 3402天前

    回复 原鑫鑫:怎么得来的

    原鑫鑫 资深达人 3402天前
    比如把5个任意不同数字按大到小排序
    (54312)-->1次交换就可以达到,但我们程序中要考虑所有情况的,就是所谓的最坏打算...为了保证交换有效,肯定要做最坏打算的.(如果最坏打算都可以达到,就能满足所有情况了)

    如果有N个数字排序
    我们首先拿第一位置排序和其他所有位置比较,要比较N-1次.
    第二个数和后面所有数字比较,比较N-2次
    ...
    第N-1个数字和后面数比较,比较1次
    第N个数字和后面所有数字比较,比较0次...(因为前面所有数字都排序好了,不用比较它就是最小的数字了)
    a(N)'存在N个数字


    青栀如初 资深大师 3402天前

    回复 高岢馨

    亲爱哒

      不好意思,刚刚才看到问题

      亲爱哒冒泡排序如1,2,3,4最好的情况是按完全升级排列,最坏就是数字完全按降序排列:
    第一次是1   然后1和2,3,4
    第二次:2   比较谁比它小交换,于是2.和34交换,答案是3421
    第三次为3   3和4
    交换机最后是4321;这就是最坏情况下的次数3+2+1=6=4*3/2;
    其实对于n个的话,你要求降低
    排列,但是偏偏都是升序的数字;最坏的情况就是如此:次数为:n-1+n-2
    .........+1=n*(n-1)/2

        亲爱哒,“望采纳哟!”如果以后还有什么不懂哒问题我们还可以一起讨论哟,相信我们一定会把问题解决哒,么么哒亲爱哒!

您还没有登录,所以不能回复该问题
我要回复

  • 0

    点赞

  • 扫一扫分享朋友圈

    二维码

  • 分享

相关问题