【经典算法】:猴子排序
猴子排序是一种什么样子的排序呢?
猴子代表乱的意思,猴子排序的意思就是乱排序,直到有序为止。
这个真实的含义就是把一个无序的数组进行乱排序,然后看其是否会有序,这是个概率性事件,有可能一次之后就有序了,也有可能很多次后依然无序。
实现方法如下:
1,定义数组
2,数组随机
3,检验数组是否有序,无序继续,有序了就停止
就是如此简单的实现思路,但是却要用到随机化的知识和标志变量的实现技巧
代码如下: //得到的数据是说明了排序多少次之后才有序
#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;
}
【经典算法】:猴子排序相关推荐
- 排序算法猴子排序java算法代码实现
<h1>猴子排序</h1> 原理:现有一组未排序数据和相同数量的方格,然后依次随机地取出数据随机地放入方格中,直到把方格放满即止. 之所以又被称为猴子排序,我的猜测是因为.将这 ...
- 猴子偷桃c语言编程软件,c语言经典算法——猴子偷桃问题
题目:海滩上有一堆桃子,五只猴子来分.第一只猴子把这堆桃子凭据分为五份,多了一个,这只猴子把多的一个扔入海中,拿走了一份.第二只猴子把剩下的桃子又平均分成五份,又多了一个,它同样把多的一个扔入海中,拿 ...
- 经典算法——鸡尾酒排序(冒泡算法改良)
经典算法--鸡尾酒排序(冒泡算法改良) 文章分类:Java编程 搞开发的人都需要积累一些经典算法,以备不时之须. 搞开发也有好几年了,积累的一些算法一直没做过整理,这段时间无聊就把这些 ...
- 排序算法——猴子排序
猴子排序 让一群猴子在打印机前昼夜不停地敲打键盘,最终有可能能输入一部莎士比亚作品集--尽管概论微乎其微. 同理,把一堆扑克牌扔到天上,等它们落下来的时候有概率会刚刚好从小到大排成一列. 现在有一个无 ...
- 计算机大赛算法,计算机经典算法——锦标赛排序算法
关键词:二叉树 生活中的淘汰锦标赛:在单淘汰的锦标赛中,选手们两两比赛,胜者晋级,败者被淘汰.比如世界乒乓球锦标赛或者大满贯网球赛就是这么进行的. 这样一来,就可以把比赛的赛程和结果对应成一个二叉树. ...
- 【经典算法学习-排序篇】直接选择排序
一.选择排序 1.基本概念和介绍 选择排序的核心思想是:每一趟从无序区中选出关键字最小(或最大)的元素,按顺序放在有序区的最后(生成新的有序区,无序区元素个数减1),直到全部排完为止. 换句话说就是: ...
- c语言经典算法——猴子偷桃问题
题目:海滩上有一堆桃子,五只猴子来分.第一只猴子把这堆桃子凭据分为五份,多了一个,这只猴子把多的一个扔入海中,拿走了一份.第二只猴子把剩下的桃子又平均分成五份,又多了一个,它同样把多的一个扔入海中,拿 ...
- 经典算法题每日演练——第二十二题 奇偶排序
原文:经典算法题每日演练--第二十二题 奇偶排序 这个专题因为各种原因好久没有继续下去了,MM吧...你懂的,嘿嘿,不过还得继续写下去,好长时间不写,有些东西有点生疏了, 这篇就从简单一点的一个&qu ...
- Java排序 - 不实用的几个排序算法 -- 睡眠排序、猴子排序、面条排序、珠排序...
介绍几个不实用的排序算法,一来可以在学习时增加一些乐趣,放松一下自己,二来可以学习一下.思考一下这些算法失败在哪里,又是否存在一些好的地方? 睡眠排序 这是一个思想比较简单,脑洞巨大的算法 -- 我们 ...
最新文章
- elasticsearch如何安全重启
- git revert改写提交
- weekly 2019-02-15
- CentOS7.0 安装nginx-1.9.10
- mysql承受压力_MySQL 压力性能测试(Mysqlslap)工具
- 全国计算机二级office基础知识,全国计算机二级office考试内容
- P1428 小鱼比可爱(python3实现)
- python代码修改nginx配置_生产环境部署python代码(django+uwsgi+nginx)
- 向数据库插入中文乱码
- PXE 自动安装物理机 (DHCP服务由路由提供, 不能再配置)
- SpringBoot启动o.s.b.d.LoggingFailure… 错误解决方法
- 设置谷歌浏览器翻译插件
- Meterpreter命令详解
- YTU 3921 游戏
- 笔记本键盘失灵,外接键盘不行,只有无线鼠标能用【完美解决】!
- 思想一年一年进步才好
- html怎么给段落设置背景色,css的(文字、背景、段落)样式
- 电脑回收站清空了怎么恢复回来
- 听说你想 520 表白
- R语言使用lm函数构建简单线性回归模型(建立线性回归模型)、拟合回归直线、使用residuls函数从模型中提取每个样本点的残差值、可视化残差与拟合值之间的散点图来看残差的分布模式