我正在尝试计算气泡排序的theta表示法,但我陷入困境。鉴于此过程(伪):Calculate Big Theta Notation Bubble排序
procedure BUBBLE_SORT(A,n) {
array A(1 to n)
for (int i = 1; i <= n; i++) {
for(int j = 1; j <= n-1; j++) {
if(A[j] > A[j+1] {
//swap(A(j), A(j+1))
}
}
}
}
我能得到的运行时间与西格玛符号最坏的情况是:
(N^2 - N)/ 2
为了获得最佳情况下的运行时间,我跟着我的书,这样做:
鉴于p(N)=(N^2 - N)/ 2,我们宣称,p(N)=Θ(N^2)。为了证明这一点,我们表明,对于一些常数C1,C2和N0:
C1N^2 < =(N^2/2)+由(N/2)< = C2N^2
除以两侧N^2,我们得到:
C1 < =(1/2)+(1/2n)后< = C2
这是我迷路。在书中,作者挑选了一些数字,插入并说:“因此,它遵循p(n)=Θ(n^2)”
我怎么知道插入什么数字?我可以插入任何数字吗?如果这些数字符合不等式,这是否意味着我可以立即说算法是Θ(n^2)?
谢谢!
我跟随
你是对的!感谢您指出。现在编辑 – Katrina