簡體   English   中英

漸進分析:Python Big-O作業

[英]Asymptotic analysis: Python Big-O homework

我有一個家庭作業問題,要求我對以下Python代碼的最壞情況下的時間復雜性進行嚴格的估計:

sum = 0
i = n
while i > 1:
    for k in range(n*n):
        sum = sum + k*i
    i = i // 2

由於線i = i // 2,外循環似乎具有O(log n)時間復雜度。內循環似乎具有O(n ^ 2)時間復雜度,因為范圍為n * n 。 這兩個回路似乎彼此獨立,因此總的時間復雜度是否為O(n ^ 2)?

您可能將復雜度視為完成給定任務所需的簡單操作數。 現在,您的外循環說您執行了給定的操作log(n)次,您在問題中正確指出了該次數。 但是,這些操作並不簡單-它們包含執行一個循環。 再次指出,此循環執行O(n^2)簡單操作。 現在嘗試思考一下代碼片段執行的簡單操作的總數是多少?

注意:在我的回答中,我假設加法和整數除法是簡單的運算。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM