为啥不是n的平方,下图的公式n(n-1)/2=n^2推导错了吗?
王丽媛 人气新星 2018-07-23 17:06:09
3441 1 0

blob.png

问题来自: 排序算法
对长度为10的线性表进行冒泡排序,最坏情况下需要比较的次数为( )
A. 9
B. 10
C. 45
D. 90
答案:C
解析:最坏情况下比较次数都是n(n-1)/2,则结果为45。所以选择C。

共 1 个回答

    最佳答案

    office助教 铁杆会员 2527天前

    O(n²)是指时间复杂度,这里是大体表示运算次数与数据长度n的变化关系,而不是运算次数的表达式,再求出常数c,运算次数T(n)与数据长度n的关系就可以粗略的表示为T(n)=c×n²



    这里O(n²)表示时间复杂度,n²这个函数定性的描述了算法运行的时间,描述了计算的工作量。准确的说n(n-1)/2≠n²,当n无穷大时冒泡排序算法的运行次数才趋近于Cn²,这里O表示渐进时间复杂度,简称复杂度,C表示一个常数,这里算法的运行次数函数是T(n)=n(n-1)/2,这里n²是冒泡排序算法的时间复杂度函数f(n),也是T(n)的同数量级函数,n趋近于无穷大时算出T(n)/f(n)极限值C,这样算出的常数C就是1/2,所以n趋近于无穷大时冒泡排序算法的运行次数趋近于0.5n²。n²这个时间复杂度函数是说算法的运行次数会接近随n呈常数C×n的平方形式变化这里只是接近而不是准确。当对长度为10的线性表进行冒泡排序时,n=10,T(n)=10(9)/2等于45,所以准确的说运行次数是45次

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

  • 0

    点赞

  • 扫一扫分享朋友圈

    二维码

  • 分享

相关问题