原文:排序之猴子算法

这期博客我主要想聊一聊一个没有什么实用价值的排序算法。它的时间复杂度已经超出现有已知任何其他的排序算法,同时,也低于现有任何已知的其他排序算法。它就是猴子算法。 相信在座各位都知道一个无限猴子定理,这个定理的内容就是:让一只猴子在电脑上疯狂的随机打字,只要时间足够的多,就可以打出莎士比亚全集。这个算法的核心也是这样的。 这个算法的过程是这样的:把给定的数组随机排一遍,然后判断是否符合排序要求,如 ...

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