猴子排序是一种什么样子的排序呢?
猴子代表乱的意思,猴子排序的意思就是乱排序,直到有序为止。

这个真实的含义就是把一个无序的数组进行乱排序,然后看其是否会有序,这是个概率性事件,有可能一次之后就有序了,也有可能很多次后依然无序。

实现方法如下:
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;
}

【经典算法】:猴子排序相关推荐

  1. 排序算法猴子排序java算法代码实现

    <h1>猴子排序</h1> 原理:现有一组未排序数据和相同数量的方格,然后依次随机地取出数据随机地放入方格中,直到把方格放满即止. 之所以又被称为猴子排序,我的猜测是因为.将这 ...

  2. 猴子偷桃c语言编程软件,c语言经典算法——猴子偷桃问题

    题目:海滩上有一堆桃子,五只猴子来分.第一只猴子把这堆桃子凭据分为五份,多了一个,这只猴子把多的一个扔入海中,拿走了一份.第二只猴子把剩下的桃子又平均分成五份,又多了一个,它同样把多的一个扔入海中,拿 ...

  3. 经典算法——鸡尾酒排序(冒泡算法改良)

    经典算法--鸡尾酒排序(冒泡算法改良) 文章分类:Java编程 搞开发的人都需要积累一些经典算法,以备不时之须.         搞开发也有好几年了,积累的一些算法一直没做过整理,这段时间无聊就把这些 ...

  4. 排序算法——猴子排序

    猴子排序 让一群猴子在打印机前昼夜不停地敲打键盘,最终有可能能输入一部莎士比亚作品集--尽管概论微乎其微. 同理,把一堆扑克牌扔到天上,等它们落下来的时候有概率会刚刚好从小到大排成一列. 现在有一个无 ...

  5. 计算机大赛算法,计算机经典算法——锦标赛排序算法

    关键词:二叉树 生活中的淘汰锦标赛:在单淘汰的锦标赛中,选手们两两比赛,胜者晋级,败者被淘汰.比如世界乒乓球锦标赛或者大满贯网球赛就是这么进行的. 这样一来,就可以把比赛的赛程和结果对应成一个二叉树. ...

  6. 【经典算法学习-排序篇】直接选择排序

    一.选择排序 1.基本概念和介绍 选择排序的核心思想是:每一趟从无序区中选出关键字最小(或最大)的元素,按顺序放在有序区的最后(生成新的有序区,无序区元素个数减1),直到全部排完为止. 换句话说就是: ...

  7. c语言经典算法——猴子偷桃问题

    题目:海滩上有一堆桃子,五只猴子来分.第一只猴子把这堆桃子凭据分为五份,多了一个,这只猴子把多的一个扔入海中,拿走了一份.第二只猴子把剩下的桃子又平均分成五份,又多了一个,它同样把多的一个扔入海中,拿 ...

  8. 经典算法题每日演练——第二十二题 奇偶排序

    原文:经典算法题每日演练--第二十二题 奇偶排序 这个专题因为各种原因好久没有继续下去了,MM吧...你懂的,嘿嘿,不过还得继续写下去,好长时间不写,有些东西有点生疏了, 这篇就从简单一点的一个&qu ...

  9. Java排序 - 不实用的几个排序算法 -- 睡眠排序、猴子排序、面条排序、珠排序...

    介绍几个不实用的排序算法,一来可以在学习时增加一些乐趣,放松一下自己,二来可以学习一下.思考一下这些算法失败在哪里,又是否存在一些好的地方? 睡眠排序 这是一个思想比较简单,脑洞巨大的算法 -- 我们 ...

最新文章

  1. elasticsearch如何安全重启
  2. git revert改写提交
  3. weekly 2019-02-15
  4. CentOS7.0 安装nginx-1.9.10
  5. mysql承受压力_MySQL 压力性能测试(Mysqlslap)工具
  6. 全国计算机二级office基础知识,全国计算机二级office考试内容
  7. P1428 小鱼比可爱(python3实现)
  8. python代码修改nginx配置_生产环境部署python代码(django+uwsgi+nginx)
  9. 向数据库插入中文乱码
  10. PXE 自动安装物理机 (DHCP服务由路由提供, 不能再配置)
  11. SpringBoot启动o.s.b.d.LoggingFailure… 错误解决方法
  12. 设置谷歌浏览器翻译插件
  13. Meterpreter命令详解
  14. YTU 3921 游戏
  15. 笔记本键盘失灵,外接键盘不行,只有无线鼠标能用【完美解决】!
  16. 思想一年一年进步才好
  17. html怎么给段落设置背景色,css的(文字、背景、段落)样式
  18. 电脑回收站清空了怎么恢复回来
  19. 听说你想 520 表白
  20. R语言使用lm函数构建简单线性回归模型(建立线性回归模型)、拟合回归直线、使用residuls函数从模型中提取每个样本点的残差值、可视化残差与拟合值之间的散点图来看残差的分布模式

热门文章

  1. 【网络编程】python实现ssh传递文件
  2. Java中final
  3. 调制解调器(或其他连接设备)报告了一个错误
  4. “中兴捧月”杯 校园赛事嘉年华 | 程序设计大赛(初赛) | 数字化婚姻尝试配对
  5. QT调用打印机的实现
  6. abap alv中设置数量(QUAN)字段输出时不要有小数位
  7. 人力资源管理软件让每位员工的记录触手可及
  8. 小马哥-----高仿苹果6S 主板型号A231 全网通机型刷机 完美root图与拆机主板图
  9. [AHK]一键摘抄金句到Obsidian
  10. 怎样提高Windows系统的启动速度