編輯-這個問題來自我課程中的前一個測驗,官方答案是 O(n)
我需要幫助理解為什么以下代碼中的運行時復雜性是O(n)而不是O(n*log(n))
def fun(n):
total = 0
while n > 5:
n = n // 2
total = sum(range(n))
return total
while回圈執行log(n)時間,并在每次迭代中求和函式的款項n/2,因此號碼,它的復雜性o(n),我看到每個while迭代有較少的號碼總和,但我不明白為什么它的O(n)。
謝謝你。
uj5u.com熱心網友回復:
所以我想通了。
每次while迭代對n/2專案求和。這意味著總迭代次數是n\2 n\4 n\8 ...,并且這個總和收斂到n
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/406820.html
標籤:
下一篇:原生函式是什么意思?
