有哪些見過的時間複雜度為無限大的演算法?

時間 2021-05-30 12:23:45

1樓:梁六喵

看見過一種奇葩的排序方法,叫睡眠排序,每個資料乙個執行緒,sleep的時間是資料的值,資料小的先喚醒,資料大的後醒,按照醒來的順序自然就排好了,不知道這個時間複雜度怎麼算

2樓:

停機問題判定演算法,由於停機問題不可解所以時間複雜度是無窮大

---upd---

據其他答主所說,似乎時間複雜度無窮大就不滿足「演算法」的定義了

3樓:帽子

在演算法的五個性質中就有乙個有限性。

1. 輸入:乙個演算法必須有零個或以上輸入量。

2. 輸出:乙個演算法應有乙個或以上輸出量,輸出量是演算法計算的結果。

3. 明確性:演算法的描述必須無歧義,以保證演算法的實際執行結果是精確地符合要求或期望,通常要求實際執行結果是確定的。

4. 有限性:依據圖靈的定義,乙個演演算法是能夠被任何圖靈完備系統模擬的一串運算,而圖靈機只有有限個狀態、有限個輸入符號和有限個轉移函式(指令)。

而一些定義更規定演演算法必須在有限個步驟內完成任務。

5. 有效性:又稱可行性。能夠實現,演算法中描述的操作都是可以通過已經實現的基本運算執行有限次來實現。

【以上引用自Wikipedia:演算法 - 維基百科,自由的百科全書】

換言之,如果有乙個時間複雜度為無窮大的程式的話,那它嚴格地講就不是演算法了。。

從這個角度回答的話,不存在時間複雜度為無窮大的演算法。

當然,存在最壞情況會到正無窮但是平均情況下是有窮的演算法。

例如說猴子排序。

最壞情況的時間複雜度為O(+∞),期望時間複雜度為O(n*n!)

不過按照定義來看,猴子排序算不算滿足有限性還是個問題。。

4樓:rsa

用隨機函式rand()等概率隨機生成乙個0到n-1之間的整數,假設rand()等概率隨機生成0到RAND_MAX-1之間的整數且n≤RAND_MAX。

intrnd

(intn)

當RAND_MAX不是n的倍數時,最壞情況複雜度為無窮大。

演算法時間複雜度為O(n )的是什麼演算法?

子正 O n 的演算法不稱其為演算法,它意味著這個問題尚未解決。n稍微大一點,就會耗盡CPU的算力。它比不斷摺紙 圍棋盤上擺大公尺得到的數更大。這種 演算法 是進行演算法改進的物件。演算法老師沒有花力氣說明這種演算法的荒謬之處倒是個很不可思議的事情。n 是個很大的數,你可以用windows自帶的計算...

STL庫里的演算法時間複雜度和空間複雜度都是最佳的嗎?

Alinshans 肯定不都是最佳的。但肯定比99 的人寫的都要好。競賽中不一定要求時間複雜度最小,但是基本上 嚴格一點的 要求達到乙個級別。比如複雜度能O nlogn 的你不要搞O n STL中的演算法肯定能確保你能達到,如果你的寫法沒有問題,但死活超時了 卡常數 我覺得題目出得有問題。另,你知道...

資料結構中的時間複雜度和空間複雜度有沒有直接的關係?

1.在絕大多數情況下,演算法的時間複雜度不會低於空間複雜度 2.為什麼在一段時間內學習到的實現同樣目標演算法中,二者似乎矛盾對立?因為如果A演算法在時空上都優秀於B演算法,我覺得你不會去記B演算法就醬 不用很長各種各樣的論述,你記住幾點 其實只要記住最後一點就可以了 1,完成乙個既定目標的任意演算法...