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