我正在閱讀一篇關於在非常流行的網站上分析循環時間複雜性的文章(下面給出的鏈接),並根據該文章介紹了下面循環的時間複雜性1st和第二個分別是O(1)和O(n)。 但我認爲這兩個循環的時間複雜度是相同的O(n)的這些循環1和2的時間複雜度是多少
for (int i = 1; i <= c; i++) {
// some O(1) expressions
}
我的理由是:'C * N = O(n)的
通過回答以下問題,會後,我的理由是因爲沒有變化的輸入n錯誤。循環運行是固定的--c次。因此不管輸入值n如何,循環將運行恆定時間。所以O(1)複雜
for (int i = 1; i <= n; i += c) {
// some O(1) expressions
}
我的理由:c*n=O(n)
我失去的東西,我將不勝感激,如果有人能幫助解釋
這是文章的鏈接? http://www.geeksforgeeks.org/analysis-of-algorithms-set-4-analysis-of-loops/
這整個循環就像一個常數,因爲它不依賴於變化的輸入值 - 循環是固定的? right –
@Naruto_Uzumaki嗯是的循環是固定的。你對 –
非常感謝Sakib兩種情況。我現在明白清楚 –