-3
A
回答
0
正如評論中所述,該循環僅終止於n ≤ 0
。對於其他所有n
,程序不會終止。
我想你不想談的複雜性,如果你有什麼事情,永遠不會終止,因爲複雜性被用來獲取大的投入運行時間的想法,並比較算法。
你甚至不能說你的代碼是一種算法,因爲算法的定義通常包含,它必須終止。
如果你被要求寫在大澳的東西有看看這個方法不止一種。
- 算法永遠不會終止,所以它是無限的操作,你不能找到一個常數
c
與∞ < c⋅f(n)
爲n < ∞
功能f(n)
(多項式或指數),所以它應該是O(∞)
。
這由big-o的正式定義支持。 - 如果你看一下執行的操作的數量的變化,如果您雙擊輸入,
n → 2n
你看到的,執行的操作的數量不會改變,所以也許O(1)
也是可能的。
這由重複公式T(n) = T(n-1)
支持。最後你必須定義T(1)
是什麼。複雜性與小的或特定的輸入無關,所以也許可以定義T(1) = O(1)
。
兩種方式都表示,運行時間不取決於輸入,但第二個主要是哲學,第一個應該是首選。
但正如我在開始時說:你不想談上永遠不會終止(或只爲不相關的情況下)代碼的複雜性。
相關問題
- 1. 這些循環1和2的時間複雜度是多少
- 2. 這個循環的時間複雜度
- 3. 減少循環的時間複雜度
- 4. 這兩個嵌套for循環的時間複雜度是多少?
- 5. 以下循環的時間複雜度是多少
- 6. 循環的時間複雜度是多少?
- 7. 以下嵌套循環的時間複雜度是多少?
- 8. 嵌套在while循環中的for循環的時間複雜度是多少?
- 9. 證明這個雙循環的時間複雜度是O(n)
- 10. Collection.toArray()的時間複雜度是多少?
- 11. 這個函數的時間複雜度是多少?
- 12. 這個算法的時間複雜度是多少?
- 13. 這個算法的時間複雜度是多少?
- 14. 這個程序的時間複雜度是多少?
- 15. 這個算法的時間複雜度是多少?
- 16. 這個程序片段的時間複雜度是多少?
- 17. 這個算法(代碼)的時間複雜度是多少?
- 18. 這個僞代碼的時間複雜度是多少?
- 19. 一個循環的時間複雜度
- 20. 這段代碼的時間複雜度是多少(來自leetcode)?
- 21. 這段代碼的時間複雜度是多少?爲什麼?
- 22. 這段代碼片段的時間複雜度是多少?
- 23. 下面的嵌套循環代碼的時間複雜度是多少?
- 24. 這個while循環的時間複雜度?
- 25. 這個while循環的時間複雜度
- 26. 這個while循環的時間複雜度:
- 27. 如何確定這個循環的時間複雜度?
- 28. 這個排列算法的空間複雜度是多少?
- 29. 時間這雙循環的複雜性
- 30. 定向非循環詞圖中查找的時間複雜度是多少?
它取決於'n'的值,它永遠不會繼續。 – 2015-04-02 14:21:07
如果n <= 0,它是恆定的時間,如果n> 0,它是無限的。 – gnasher729 2015-04-02 14:21:09
或者其他的東西完全是,如果'i'在循環體中被修改! – Hurkyl 2015-04-02 14:21:37