3
for i=1 to n
for j=1 to i
for k=1 to j
x+=1
我相信這是爲O(n )以下嵌套循環的時間複雜度是多少?
for i=1 to n
for j=1 to i
for k=1 to i
x+=1
我也覺得這一個是N 因爲內部循環仍依賴於最外層循環。
請驗證我的回答,並解釋我爲什麼錯了。
這是一個說明性的圖n與你的算法的運行時間的各種n值(但包括一個固定的持續時間睡眠/暫停在x + = 1步,以便您可以使用n的合理值)。查看圖形的形狀以獲得關於複雜性的最初概念。 –
或者只是繪製x的值,因爲它只能增加1。但是,sum(1..n)是n *(n + 1)/ 2,它在O(n^2)複雜等級中,如n * n。因此,在外環循環計數器上線性依賴的循環邊界不會改變事物。 –
在實踐中,它通常要快得多,而且如果通常會發生早期失敗,那麼它可能非常重要。 (例如,考慮在字符串中查找重複的字符,檢查整個字符串以重複當前的字符,而不是檢查前面的元素。對於沒有重複第一個字符的巨大字符串,它是巨大的。)因爲你必須分別考慮這種情況,或者說明早期採取的頻率。 –