這期博客我主要想聊一聊一個沒有什么實用價值的排序算法。它的時間復雜度已經超出現有已知任何其他的排序算法,同時,也低於現有任何已知的其他排序算法。它就是猴子算法。
相信在座各位都知道一個無限猴子定理,這個定理的內容就是:讓一只猴子在電腦上瘋狂的隨機打字,只要時間足夠的多,就可以打出莎士比亞全集。這個算法的核心也是這樣的。
這個算法的過程是這樣的:把給定的數組隨機排一遍,然后判斷是否符合排序要求,如果符合就輸出,不符就再次隨機排序。如此循環下去,直到隨機排出了正確的排序。之所以說它的復雜度超過了其他算法,是因為它在最壞情況下永遠都不會給出答案;而在最好的情況下,僅僅一遍就可以正確排序。而排序的時間,取決於你的歐氣。
我願稱之為歐皇算法。