众所周知,有一种算法叫猴子排序,至于具体是什么,可以去查一下,这里仅给出代码

void monkeyShow(int arr[])//输出排序结果
{for (int i = 0; i < 5; i++){cout << arr[i] << " ";}cout << endl;
}
void monkeySort(int arr[])//猴子排序
{srand((unsigned)time(0));int flag = 1;while (flag){random_shuffle(arr, arr + 5);for (int i = 0; i < 5; i++){if (arr[i] > arr[i + 1]){flag = 1;goto loop;//跳出循环}}flag = 0;loop:;//这个空语句很重要}//输出最终结果monkeyShow(arr);
}
void monkeySort_main()
{int arr[5] = { 2,7,15,8,6 };cout << "原始数据:" << endl;monkeyShow(arr);//原始数据cout << "猴子排序(升序):" << endl;monkeySort(arr);//猴子排序实现
}
//来自https://blog.csdn.net/weixin_50545743/article/details/114946480?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522167119325216800192294455%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fall.%2522%257D&request_id=167119325216800192294455&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~first_rank_ecpm_v1~rank_v31_ecpm-6-114946480-null-null.142^v68^control,201^v4^add_ask,213^v2^t3_esquery_v1&utm_term=%E7%8C%B4%E5%AD%90%E6%8E%92%E5%BA%8F&spm=1018.2226.3001.4187
//如有侵权,会删除本段代码

好的,现在我们换一只聪明的猴子。

这只猴子起码知道,尝试过的不会再尝试一次,所以,衍生出了一种新的算法

全排列算法(又名:聪明的猴子排序)

//从小到大排序
#include <iostream>
using namespace std;
int b[15];
int a[15];
bool vis[15];//10个数
bool check(){for(int i = 2; i <= 10){if(a[i]<a[i-1])return false;}return true;
}
void SmartMonkeySort(int u){if(u>10){if(check()){return;}}for(int i = 1; i <= 10; i++){if(vis[i])continue;vis[i]=1;a[u]=b[i];dfs(u+1);vis[i]=0;}
}
void print()
{//..........
}
int main()
{}

猴子排序与聪明的猴子排序相关推荐

  1. BZOJ 2429: [HAOI2006]聪明的猴子【最小生成树】

    2429: [HAOI2006]聪明的猴子 Time Limit: 10 Sec Memory Limit: 128 MB Description 在一个热带雨林中生存着一群猴子,它们以树上的果子为生 ...

  2. bzoj 2429: [HAOI2006]聪明的猴子(最小生成树)

    2429: [HAOI2006]聪明的猴子 Time Limit: 10 Sec  Memory Limit: 128 MB Submit: 1570  Solved: 902 [Submit][St ...

  3. P2504 [HAOI2006]聪明的猴子 题解

    P2504 [HAOI2006]聪明的猴子 题解 题目 链接 字面描述 题目描述 输入格式 输出格式 样例 #1 样例输入 #1 样例输出 #1 提示 思路 代码实现 题目 链接 https://ww ...

  4. 输入十个数进行排序_十大经典排序算法(Javascript描述)

    "本文13906字,阅读大约需要35分钟." 这世界上总存在着那么一些看似相似但有完全不同的东西,比如雷锋和雷峰塔,小平和小平头,玛丽和马里奥,Java和Javascript... ...

  5. mysqlorderby数字字符串排序_Python中的元组排序和深度比较

    比较Python中的东西.这听起来几乎是不需要教的,但是我发现Python的比较运算符经常被Python新手误解和低估. 我们来回顾一下Python的比较运算符如何处理不同类型的对象,然后看看如何使用 ...

  6. ACNO.15猴子吃桃问题。猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个。 第二天早上又将剩下的桃子吃掉一半,又多吃一个。以后每天早上都吃了前一天剩下的一半零一个。 到第N天早上想再

    题目描述 猴子吃桃问题.猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个.第二天早上又将剩下的桃子吃掉一半,又多吃一个.以后每天早上都吃了前一天剩下的一半零一个.到第N天早上想再吃时,见 ...

  7. 张仰彪第二排序法_十大排序之冒泡和选择排序

    你好,我是goldsunC 让我们一起进步吧! 排序 所谓排序,就是指将一组数据,按照特定规则调换位置,使数据具有某种顺序关系(递增或递减).在排序过程中,数据的移动方式可分为直接移动和逻辑移动两种. ...

  8. R语言使用str_order函数和str_sort函数对字符向量进行排序(str_order返回字符串排序的次序值(索引)、str_sort返回排序后的字符串)

    R语言使用str_order函数和str_sort函数对字符向量进行排序(str_order返回字符串排序的次序值(索引).str_sort返回排序后的字符串) 目录

  9. R语言dplyr包arrage函数排序dataframe实战:单列排序、多列排序、自定义排序

    R语言dplyr包arrage函数排序dataframe实战:单列排序.多列排序.自定义排序 目录 R语言dplyr包arrage函数排序dataframe实战:单列排序.多列排序

  10. mysql通过订单量排序_mysql8 参考手册--通过排序优化

    本节描述了MySQL何时可以使用索引满足ORDER BY子句,无法使用索引时使用的 filesort操作,以及有关优化程序的执行计划信息ORDER BY. 一个ORDER BY有和没有 LIMIT可能 ...

最新文章

  1. ADO.NET连接SQL Server数据库
  2. 一. DotNet MVC4.0+EasyUI Web简单框架-前言
  3. java写soap客户端_Java:简单的SOAP客户端
  4. php禁用eval,zp blog
  5. python3 struct.pack方法报错argument for 's' must be a bytes object
  6. megento 获取url参数
  7. Take C# 8.0 for a spin
  8. 解决 php提交表单到当前页面,刷新会重复提交 的问题
  9. 小乌龟Git回滚重置及合并指定提交
  10. 自己搭建手游服务器端数据修改,自己架设服务器玩手游
  11. CentOS7 原生 yum 源修改为阿里 yum 源
  12. 今天开始研究小米便签的开源代码
  13. 耐高温轴承1000度_1000度耐高温轴承的类型选择--SIAIF耐高温轴承
  14. 计算机网络第二章 韩立刚
  15. 腾讯云数据迁移工具解决方案:阿里云迁移到腾讯云
  16. 英雄联盟掉线后显示无法连接服务器,英雄联盟掉线连不上出现英文窗口解决方案...
  17. JS实现元素拖拽,简单悬浮框实现
  18. 石油石化生产企业该如何防止电网晃电发生和发生晃电时保证敏感负荷的设备正常运行
  19. 实战:Gateway API-2022.2.13
  20. 4G LTE频带划分和国内运行商资源分配

热门文章

  1. helm charts 入门指南
  2. v-charts使用-实例
  3. 快速预警、高效疏通,ZBOX打造高速公路智慧通信站
  4. linux 微信安装
  5. 【原创纯手打】VUE项目写小米商城官网(附源码)
  6. jQuery简易的购物车
  7. VTK:图形基本操作进阶——连通区域分析
  8. 【Python/Pytorch - Bug】-- TypeError: type numpy.ndarray doesn‘t define _round method
  9. 【图神经网络】异构时间图卷积网络HTGCN——用于社区检测
  10. 使用ffmpeg批量合并flv文件