3大奇葩排序之猴子算法
有个奇葩定理,叫无限猴子定理:
有无限只猴子用无限的时间会产生特定的文章,如莎士比亚的作品(当然换成是我我也行)
因此,一个由奇葩定理得出的奇葩排序产生了
叫monkey排序(这monkey不是孙悟空就是程序猿):
过程是这样的:
有6张卡片,分别为:925734
一只顽皮的猴子将卡片洗牌
变成:295374
再洗一次:
732594
…
one year later
973452
…
one thousand year later
234579
猴子:ohohoohoohohhoohoohooho
这就是所谓的猴子算法,代码如下:
#include <iostream>
using namespace std;
int source[10],flag[10],res[10];
int sort(){memset(flag,1,sizeof(flag));int num = 10,count=0;while(num){int t =rand()%10; //生成0-9之间的数if(flag[t]){res[count++] = source[t];num--;}}for(int i=0;i<9;i++){if(res[i]>res[i+1]){ //只有是从小到大的排列才行return 0;} }return 1;
}
int main(){int count = 0;for(int i=0;i<10;i++){cin>>source[i];}while(sort()!=1){count++;}cout<<"共运行了"<<count<<"次"<<endl;return 0;
}
这是0~9之间数排序
转自:https://blog.csdn.net/qq_23100787/article/details/51150587
用人问这有个毛用
别着急
假设列表a有n项,那每次随机结果%n,将a[随机]计入b,最后判断b是否有序这不就是个很正经的排序吗??
3大奇葩排序之猴子算法相关推荐
- Java排序 - 不实用的几个排序算法 -- 睡眠排序、猴子排序、面条排序、珠排序...
介绍几个不实用的排序算法,一来可以在学习时增加一些乐趣,放松一下自己,二来可以学习一下.思考一下这些算法失败在哪里,又是否存在一些好的地方? 睡眠排序 这是一个思想比较简单,脑洞巨大的算法 -- 我们 ...
- 十大经典排序算法动画与解析,看我就够了
作者 | 程序员小吴 转载自五分钟学算法(ID: CXYxiaowu) 排序算法是<数据结构与算法>中最基本的算法之一. 排序算法可以分为内部排序和外部排序.内部排序是数据记录在内存中进行 ...
- 十大经典排序算法(建议收藏)
来自:Damonare的个人博客 原文:http://blog.damonare.cn/2016/12/20/十大经典排序算法总结(javascript描述)/ 0.算法概述 0.1 算法分类 十种 ...
- 11月14日云栖精选夜读 | 动画+原理+代码,解读十大经典排序算法
排序算法是<数据结构与算法>中最基本的算法之一. 排序算法可以分为内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大,一次不能容纳全部的排序记录,在排序过 ...
- 【每日算法】C语言8大经典排序算法(2)
接上文--->[每日算法]C语言8大经典排序算法(1) 二.插入类排序 插入排序(Insertion Sort)的基本思想是:每次将一个待排序的记录,按其关键字大小插入到前面已经排好序的子文件中 ...
- 十大经典排序算法动画与解析
排序算法是<数据结构与算法>中最基本的算法之一. 排序算法可以分为内部排序和外部排序. 内部排序是数据记录在内存中进行排序. 而外部排序是因排序的数据很大,一次不能容纳全部的排序记录,在排 ...
- 数据结构与算法笔记 —— 十大经典排序及算法的稳定性
一.十大经典排序算法 排序算法是<数据结构与算法>中最基本的算法之一. 排序算法可以分为内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大,一次不能容纳全 ...
- Algorithm:【Algorithm算法进阶之路】之十大经典排序算法
Algorithm:[Algorithm算法进阶之路]之十大经典排序算法 相关文章 Algorithm:[Algorithm算法进阶之路]之数据结构二十多种算法演示 Algorithm:[Algori ...
- python经典排序_python实现十大经典排序算法
写在前面 本文参考十大经典排序算法(动图演示),这篇文章有动图显示,介绍的很详细.本文是部分内容有借鉴此博客,用python实现,有一些改进. 各种算法的时间.空间复杂度 1.冒泡排序 1.比较相邻的 ...
- C++ 十大经典排序算法原理及模板之STL方法实现以及稳定性分析
写在前面: 1.本文中默认排序为升序,降序的原理类似. 2.如果程序直接复制到vs出现无法识别标记的问题,解决方法在这:vs无法识别标记的解决方法 3.本文的算法都是自己用stl实现的,疏漏之处还请指 ...
最新文章
- php制作标签,ThinkPHP标签制作教程
- SAP顾问,市场的双重需求
- Ecplise中怎样进行全局搜索
- 智能指针 shared_ptr 解析
- .net core高性能通讯开源组件BeetleX
- 网络爬虫--8.编码趣闻
- 阿里云多机部署Fabric 1order节点多个peer节点
- CentOS部署SpringBoot项目(二)
- RestTemplate远程接口调用
- UIView - CAGradientLayer
- 【笔记】LR配置ODBC连接数据库进行参数化(mysql )未完待续
- HttpPrinter易桥网络打印机
- NLP高阶实战必读:一文走遍完整自然语言处理流程 文章
- Windows 8,为应用和触摸重塑的Windows
- 【每日早报】2019/08/19
- Matlab——线性规划模型
- 2018 最新注册码【激活码】、在线激活 pycharm 完整方法(亲测有效)【2018.05.08 重大更新!!!!】
- 微信小程序里面的单步调试和变量查看
- 蚂蚁员工激励达到1376.9亿元 人均可在杭州买一套283平房子
- Python数据可视化学习笔记:第一章 关联图 第四节 使用Python绘制一般气泡图
热门文章
- DT财经:2018北京城市大数据活跃报告
- 以太坊源码分析(48)p2p-server.go源码分析
- scala linearization
- Element-Ui 双重el-tabs组件选中第二层时,刷新导致第一层选中样式丢失问题以及解决方法
- VUE启动报错:Error: The project seems to require pnpm but it‘s not installed
- 文本框失去焦点事件、获得焦点事件
- php里ajax提交form表单图片上传,PHPAJAXFORM提交图片上传并显示图片源码
- Java - constants
- Conditional Generative Adversarial Nets(CGAN)
- CF949D Curfew solution