猴子排序:除量子計算機外,這可能是世界上可以突破排序算法時間復雜度為O(nlgn)的極限的算法了
無限猴子定理
猴子和打印機思想是這樣的:如果有無數多的猴子,有無數的打字機,讓這些猴子在這些打字機上隨便打字,并且時間足夠長,那么某個時刻,它們必然會打出莎士比亞的全部著作。
猴子排序思想
依據上面說到的無限猴子定理,猴子排序面對未排序的數組時,取出該數組的元素隨機插入其中,如果插入有序則完成排序,如果無序,再進行下次隨機插入。
代碼實現(C++)
基本實現時:首先定義一個與待排序序列具有相同大小的的數組,然后向數組中的元素隨機插入元素,接著判斷其是否有序
總結
其實有心的人,已經看出這是玩笑了。不過我第一次見到這種排序方法時,的確感覺很有意思,還能這樣搞。這種算法完全是憑借運氣了,是一種偽概率。可以發現,即便是范圍非常小的數字,其排序的次數也會非常的多
猴子排序視頻演示
最后
在量子計算機還沒有普及之前,對于物理計算機還是老老實實使用那些經典的排序算法把,畢竟是巨人們智慧的結晶。
如果說真的讓人感覺比較耳目一新的算法的話,還是希爾排序吧,因為它的多路并排是在太巧妙了。
如果有希望了解這些算法的,歡迎在我的博客中查看,圖文并茂,視頻演示
地址:https://blog.csdn.net/qq_39183034/article/details/113772137?spm=1001.2014.3001.5501