我正在计算这个算法的运行时间。
Cost No Of Times
for(j=1;j<=n-1;j++){ c1 n(loop will run for n-1 times +1 for failed cond
for(i=0;i<=n-2;i++){ c2 n*(n-1) (n-1 from outer loop and n for inner
if(a[i]>a[i+1]){ c3 (n-1)*(n-1)
Swap c4 (n-1)*(n-1) {in worst case }
}
}
最坏情况下:
T(n) = c1*n + c2*(n-1)n + c3(n-1)(n-1) + c4*(n-1)(n-1) 时间复杂度为O(n^2)
最好情况下:
T(n) = c1*n + c2*(n-1)n + c3(n-1)(n-1) 时间复杂度为O(n^2)
但实际上,冒泡排序在最好情况下的时间复杂度是O(n)。有人能解释一下吗?
O(n^2)
,这是冒泡排序的成本,你正在这里执行...你可以通过搜索算法的名称并进入第一个结果来找到这个信息。http://en.wikipedia.org/wiki/Bubble_sort - Benjamin Gruenbaum