RT大佬教的排序算法
平均复杂度O(n!) ;
n=13 基本已经慢到不行了 ,n再大估计几万年才能出来;
核心代码:do { … } while(next_permutation(k,k+n));

#include <bits/stdc++.h>#define ull unsigned long long
#define ll long longusing namespace std;const int maxn=100050;
int k[maxn];
bool vis[maxn];void houzilaosort(int n) {bool flag=0;while(!flag) {do {bool f2=0;for(int i=0;i<n-1;i++) {if(k[i]>k[i+1]) {f2=1;break;}}if(!f2) {flag=1;break;}}while(next_permutation(k,k+n));}
}void init(int n) {for(int i=0;i<n;i++) {k[i]=rand()%900+100;}
}void printnum(int n) {for(int i=0;i<n;i++) {cout<<k[i]<<" ";}cout<<endl;
}int main() {ios::sync_with_stdio(false),cin.tie(0),cout.tie(0);srand((unsigned)time(NULL));int n;cin>>n;init(n);cout<<"Initial: "<<endl;for(int i=0;i<n;i++) {cout<<k[i]<<" ";}cout<<endl;houzilaosort(n);cout<<"After sort: "<<endl;printnum(n);return 0;
}

猴子捞月排序算法 (随机排序)相关推荐

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

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

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

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

  3. 排序算法---选择排序(java版)

    简单选择排序 原理 选择排序(Selection Sort)的原理有点类似插入排序,也分已排序区间和未排序区间.但是选择排序每次会从排序区间中找到最小的元素,将其放到已排序区间的末尾. 简单选择排序执 ...

  4. JavaScript实现十种经典排序算法(js排序算法)

    冒泡排序算法 冒泡排序(Bubble Sort)是一种简单直观的排序算法.冒泡排序算法的步骤描述如下: 比较相邻的元素.如果第一个比第二个大,就交换他们两个. 对每一对相邻元素作同样的工作,从开始第一 ...

  5. C语言基础排序算法-选择排序

    C语言基础排序算法-选择排序 什么是选择排序? 选择排序(Selection sort)是一种简单直观的排序算法,第一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,然后再从 ...

  6. C语言排序算法 选择排序 插入排序 快速排序 qsort实现快排 堆排序

    常见排序算法 选择排序 选择排序(Selection sort)是一种简单直观的排序算法. 它的工作原理如下. 首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然后,再从剩余未排序元素 ...

  7. 经典排序算法 - 鸡尾酒排序Cocktail sort

    经典排序算法 - 鸡尾酒排序Cocktail sort 鸡尾酒排序基于冒泡排序,双向循环 还是看例子吧,给定待排数组[2 3 4 5 1] 第一趟过去时的每一步 第一步迭代,2 < 3不换 [2 ...

  8. 经典排序算法 - 希尔排序Shell sort

    经典排序算法 - 希尔排序Shell sort 希尔排序Shell Sort是基于插入排序的一种改进,同样分成两部分, 第一部分,希尔排序介绍 第二部分,如何选取关键字,选取关键字是希尔排序的关键 第 ...

  9. 经典排序算法 - 耐心排序Patience Sorting

    经典排序算法 - 耐心排序Patience Sorting 这个排序的关键在建桶和入桶规则上 建桶规则:如果没有桶,新建一个桶;如果不符合入桶规则那么新建一个桶 入桶规则:只要比桶里最上边的数字小即可 ...

  10. Java排序算法——选择排序

    Java排序算法--选择排序(Selection sort) 传送门 冒泡排序 插入排序 简述 选择排序(Selection sort)是一种简单直观的排序算法.它的工作原理如下.首先在未排序序列中找 ...

最新文章

  1. python基础===Python 代码优化常见技巧
  2. 使用shouldComponentUpdate进行性能优化
  3. (2)双机调试+符号文件
  4. HTML设计显示表单
  5. 详解DPoS共识算法
  6. 第三次学JAVA再学不好就吃翔(part92)--Map集合的遍历
  7. JAVA面试常考系列六
  8. java在cmd中什么意思_为什么在cmd中java可以运行,javac不行?
  9. 7-93 矩阵A乘以B (15 分)
  10. Leecode刷题热题HOT100(6)——Z 字形变换
  11. 【转载】 MySQL之用户资源限制
  12. FPGA 实现 RGB 图像转 Gray
  13. php系统变量有哪些,php预定义系统变量
  14. 欧姆龙OMRON PLC之Host Link协议(一)
  15. C语言基础之14:结构和其他数据形式
  16. Error:间接寻址级别不同——C++真的魔鬼
  17. 最全面java中的static关键字剖析
  18. 计算机一级真题word,最新完整word版全国计算机等级考试一级操作题往年考试真题.docx...
  19. 什么是zkSNARKs:谜一般的“月亮数学”加密,Part-1
  20. 脱离AS在windows下使用CMake交叉编译for Android

热门文章

  1. 运动耳机排行榜10强,运动人士必备的几款运动耳机分享
  2. 【1月英语—罗塞塔之爱】
  3. win7添加并开启网络服务设置
  4. Excel 2010光标移动到单元格边框时,不显示小十字(亲自实践)
  5. 微信小程序中wxml中用data-id传出的数据在js中的获取方法。
  6. python 猪八戒网接单_python接单平台简单整理
  7. 51单片机ADC模数转换
  8. StrangIOC框架一
  9. 京东云视频云全面支持AVS2标准
  10. 阿里云手机号停机了怎么办?阿里云手机号收不到验证码,阿里云子账号建立教程