回覆列表
-
1 # 後端攻城獅
-
2 # 天下第一最最棒
從多排序演算法裡面,有一個讓我耳目一新,那就是“二叉樹排序”
一、他對二叉樹的應用,我在看到這個演算法的第一眼感覺是,哇,居然還有這種應用二叉樹的方式。
二、效率奇高,只有O(nlg(n))的時間複雜度,也就是說在最壞情況執行的上限是O(nlg(n))
從多排序演算法裡面,有一個讓我耳目一新,那就是“二叉樹排序”
一、他對二叉樹的應用,我在看到這個演算法的第一眼感覺是,哇,居然還有這種應用二叉樹的方式。
二、效率奇高,只有O(nlg(n))的時間複雜度,也就是說在最壞情況執行的上限是O(nlg(n))
猴子排序:除量子計算機外,這可能是世界上可以突破排序演算法時間複雜度為O(nlgn)的極限的演算法了無限猴子定理
猴子和印表機思想是這樣的:如果有無數多的猴子,有無數的打字機,讓這些猴子在這些打字機上隨便打字,並且時間足夠長,那麼某個時刻,它們必然會打出莎士比亞的全部著作。
猴子排序思想依據上面說到的無限猴子定理,猴子排序面對未排序的陣列時,取出該陣列的元素隨機插入其中,如果插入有序則完成排序,如果無序,再進行下次隨機插入。
程式碼實現(C++)基本實現時:首先定義一個與待排序序列具有相同大小的的陣列,然後向陣列中的元素隨機插入元素,接著判斷其是否有序
猴子排序——C++實現
總結其實有心的人,已經看出這是玩笑了。不過我第一次見到這種排序方法時,的確感覺很有意思,還能這樣搞。這種演算法完全是憑藉運氣了,是一種偽機率。可以發現,即便是範圍非常小的數字,其排序的次數也會非常的多
最後在量子計算機還沒有普及之前,對於物理計算機還是老老實實使用那些經典的排序演算法把,畢竟是巨人們智慧的結晶。
如果說真的讓人感覺比較耳目一新的演算法的話,還是希爾排序吧,因為它的多路並排是在太巧妙了。
地址:https://blog.csdn.net/qq_39183034/article/details/113772137?spm=1001.2014.3001.5501