function alg1(n)
1 a=0
2 for o=1 to n do
3 for t=1 to o do
4 for k=t to o+t do
5 a=a+1
6 return(a)
如果有人能指導我如何找到最糟糕的情況,以及如何獲得alg1的輸出作爲n的函數,我將非常感激。謝謝!從最後的循環你會如何去發現這個算法的複雜性?
function alg1(n)
1 a=0
2 for o=1 to n do
3 for t=1 to o do
4 for k=t to o+t do
5 a=a+1
6 return(a)
如果有人能指導我如何找到最糟糕的情況,以及如何獲得alg1的輸出作爲n的函數,我將非常感激。謝謝!從最後的循環你會如何去發現這個算法的複雜性?
減牛逼,使之成爲
for k=0 to o do
現在2個內最環路將辦理O運行(O^2)時間爲鄰的每個值。答案是
1^2 + 2^2 + ... n^2
其等於
N(N + 1)(2N + 1)/ 6。因此,它的順序爲O(n^3)
謝謝!也非常有幫助。 – Quabs
可能重複[大O,你如何計算/近似它?](https://stackoverflow.com/questions/3255/big-o-how-do-you-calculate-approximate-it) – 4castle
Subtract t來自第三個循環計數器,它不影響結果。然後記下o = 1,2等內部循環的數量。捕捉模式 – MBo