原文:排序之猴子算法

這期博客我主要想聊一聊一個沒有什么實用價值的排序算法。它的時間復雜度已經超出現有已知任何其他的排序算法,同時,也低於現有任何已知的其他排序算法。它就是猴子算法。 相信在座各位都知道一個無限猴子定理,這個定理的內容就是:讓一只猴子在電腦上瘋狂的隨機打字,只要時間足夠的多,就可以打出莎士比亞全集。這個算法的核心也是這樣的。 這個算法的過程是這樣的:把給定的數組隨機排一遍,然后判斷是否符合排序要求,如 ...

2021-06-24 13:04 0 152 推薦指數:

查看詳情

猴子排序

基本思想 把一個無序的數組進行亂排序,然后看其是否會有序,有可能一次之后就有序了,也有可能很多次后依然無序。 最佳情況 \(O(n)\),平均 \(O(n*n!)\),最壞可執行直到世界的盡頭。 猴子排序基於無限猴子定理:無限猴子定理是數學概率 ...

Sat Aug 21 06:22:00 CST 2021 0 115
Java排序 - 不實用的幾個排序算法 -- 睡眠排序猴子排序、面條排序、珠排序

介紹幾個不實用的排序算法,一來可以在學習時增加一些樂趣,放松一下自己,二來可以學習一下、思考一下這些算法失敗在哪里,又是否存在一些好的地方? 睡眠排序 這是一個思想比較簡單,腦洞巨大的算法 -- 我們知道sleep方法可以讓一個線程睡眠s毫秒,如果需要對一個有n個數的數列進行排序,我們何不 ...

Wed Jan 02 03:09:00 CST 2019 2 7769
猴子摘桃的算法

//有一只猴子摘了一堆桃子,當即吃了一半,可是桃子太好吃了,它又多吃了一個,第二天它把第一天剩下的桃子吃了一半,又多吃了一個,就這樣到第十天早上它只剩下一個桃子了,問它一共摘了多少個桃子? //方法1 function taozi($i){ if($i==10 ...

Sun Feb 05 06:34:00 CST 2017 0 1757
算法——猴子分桃

  想做些有關“算法”的練習題,在網上無意間看到了一道很經典的算法題——猴子分桃,於是百度了一下,才發現這道題的相關文檔很多很多,但最多的也就是使用C++或者Java來解決這道題,而自己也是初次接觸C++。 1.先介紹一下C++使用最常見的編輯器——dev cpp.附上下載地址:(http ...

Wed Jun 22 21:51:00 CST 2016 0 1910
睡眠排序、面條排序猴子排序

第一次聽着幾個的時候,感覺就是老哥你是來鬧的嗎 后來仔細看了一下 我靠 天才啊,好吧 其實也就是聽着挺好的 但是實際應用的話 還是挺多坑的 一、睡眠排序 二、面條排序 首先去買一捆面,是意面掛面還是手擀面請按個人口味決定,最好是硬 ...

Fri Jul 27 17:53:00 CST 2018 0 3033
算法學習——遞推之猴子爬山

算法描述 一個猴子沿着一座山的n級台階向上爬,猴子上山一步可跳1級或3級,試求上山的n級台階有多少種不同的爬法 算法思路 利用遞推的思想,猴子在第n級台階上,它之前可能在第n-1級台階上或者是在n-3級台階上,由此可得到遞推的公式 f(n)代表着n級台階共有的爬法 f ...

Wed Sep 26 23:54:00 CST 2018 0 1205
猴子排序的期望復雜度推導(霧)

  眾所周知,猴子排序打破了排序算法$O(n\log{n})$的桎梏(霧),具體的話,顯然最好情況一次成功就是$O(n)$,最壞情況那就$O(+\infty)$了。期望是多少呢?讓我來推導一番(逃)。   首先,設序列長度為$n$,每次打亂序列和檢測是否有序為$O(n)$,每次成功的概率 ...

Mon Sep 25 07:09:00 CST 2017 5 2082
Python經典算法-猴子吃桃-思路分析

問題: 猴子第一天摘下若干個桃子,當即吃了一半,還不過癮就多吃了一個。第二天早上又將剩下的桃子吃了一半,還是不過癮又多吃了一個。以后每天都吃前一天剩下的一半再加一個。到第10天剛好剩一個。問猴子第一天摘了多少個桃子? 分析: 這是一套非常經典的算法題 ...

Mon Jul 23 04:48:00 CST 2018 0 2699
 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM