有种排序叫做猴子排序(Bogo Monkey):

1、检查是否排好

2、打乱

3、检查是否排好

4、打乱

5、……

如果数据稍多的话,几乎是不可能排序好的。

排序代码:

#include

#include

#include

void swap(int* x, int* y){

//交换

int temporary = *x;

*x = *y;

*y = temporary;

}

void randomize(int arr[], int length){

//打乱数组

for(int i = 0; i < length; i++){

srand(time(NULL)+i);//引入i增加随机性

if(rand()%2) swap(&arr[i],&arr[i+1]);

}

//printf("!");//记录打乱次数

}

bool isSorted(int arr[], int length){

for(int i = 0; i < length; i++) if(arr[i]>=arr[i+1]) return false;

return true;

}

void bogoSort(int array[], int length){

while(!isSorted(array,length)) randomize(array,length);

}

Demo:

#include

int main(){

int numbers[] = {20,9,233,0,-23,7,1,666,4,345,63,45,2,45};

bogoSort(numbers,14);//也可以改成更小

for(int i = 0; i < 14; i++) printf("%d,",numbers[i]);

}

学神之女

学神之女

dff***j@qq.com2年前 (2019-02-09)

快速排序 python菜鸟教程-C 排序算法相关推荐

  1. 快速排序 python菜鸟教程-NumPy 排序、条件刷选函数

    NumPy 排序.条件刷选函数 NumPy 提供了多种排序的方法. 这些排序函数实现不同的排序算法,每个排序算法的特征在于执行速度,最坏情况性能,所需的工作空间和算法的稳定性. 下表显示了三种排序算法 ...

  2. 快速排序 python菜鸟教程-十大编程算法助程序员走上高手之路

    算法一:快速排序算法 快速排序是由东尼·霍尔所发展的一种排序算法.在平均状况下,排序 n 个项目要Ο(n log n)次比较.在最坏状况下则需要Ο(n2)次比较,但这种状况并不常见.事实上,快速排序通 ...

  3. 快速排序 python菜鸟教程-Python菜鸟文本处理4种方法

    https://www.xin3721.com/eschool/pythonxin3721/ 自从认识了python这门语言,所有的事情好像变得容易了,作为小白,逗汁儿今天就为大家总结一下python ...

  4. 快速排序 python菜鸟教程-快速排序

    虽然快速排序称为分治法,但分治法这三个字显然无法很好的概括快速排序的全部步骤.因此我的对快速排序作了进一步的说明:挖坑填数+分治法: 先来看实例吧,定义下面再给出(最好能用自己的话来总结定义,这样对实 ...

  5. 快速排序 python菜鸟教程-1.6 快速排序

    上方没有C#实现,我补充一下,如下所示: //快速排序(目标数组,数组的起始位置,数组的终止位置) static void QuickSort(int[] array, int left = 0, i ...

  6. 一篇夯实一个知识点系列--python实现十大排序算法

    写在前面 排序是查找是算法中最重要的两个概念,我们大多数情况下都在进行查找和排序.科学家们穷尽努力,想使得排序和查找能够更加快速.本篇文章用Python实现十大排序算法. 很多人学习python,不知 ...

  7. python菜鸟教程官网pandas,python菜鸟教程官网numpy

    求比较好的Python练习网站 适合 Python 入门学习的5个网站1. Python官方网站最权威的 Python 教程.2. 菜鸟教程 Python 教程基本入门级教程,还有一些简单的进阶教程. ...

  8. python菜鸟教程100实例-运维人员学习python菜鸟教程

    这篇文章主要为大家详细介绍了运维人员学习python菜鸟教程,具有一定的参考价值,可以用来参考一下. 对python这个高级语言感兴趣的小伙伴,下面一起跟随512笔记的小编两巴掌来看看吧! 从不会写代 ...

  9. 冒泡和快速排序的时间复杂度_八大排序算法性能分析及总结

    一.排序算法说明 排序的定义:对一个无序的序列进行排序的过程. 输入:n个数:a1,a2,a3,-,an. 输出:n个数的排列:a1,a2,a3,-,an,使得a1<=a2<=a3< ...

最新文章

  1. 写文章 TEE技术分析【转】
  2. 使用JUnit进行单元测试
  3. 剑指offer:二叉树的深度
  4. django数据模型字段和通用参数说明
  5. boost::iostreams::example::container_sink用法的测试程序
  6. Windows CE 6.0中断处理过程(转载)
  7. mysql 5.6 修改端口_mysql5.6.24怎么修改端口号
  8. 计算机科学与技术专业机遇与挑战,科学网—填报专业大类志愿:机遇与挑战 - 雒运强的博文...
  9. 将list转为json字符串
  10. Linux select/poll/epoll
  11. 张朝阳寄语“校花”把参赛比做登山 走到不同阶段都是一种成就
  12. 蓝桥杯 ALGO-34算法训练 纪念品分组(贪心算法+排序)
  13. matlab (.m)文件生成 windows 可执行(.exe)文件
  14. (转)基于深度组合的选股策略
  15. 通达OA2013完美平台补丁以及手机短信服务配置
  16. freeswitch exporter
  17. tekla导出HTML,TEKLA常见问题解答
  18. opencv imwrite()保存图片崩溃
  19. 第三方登录—QQ登录
  20. 通配符(一般用来查找文件)

热门文章

  1. 2017-2018-2 20179207 《网络攻防技术》第五周作业
  2. 软件测试基础知识——适合初学者
  3. 【转】Mybatis传多个参数(三种解决方案)
  4. jquery serialize()无效读取不到数据
  5. 关于开发WPF的一些感想
  6. Javascript使用Ajax跟踪历史
  7. 2011年100佳精美的WordPress免费博客模板
  8. 关于Mozilla浏览器不支持innerText的解决办法
  9. 深入Managed DirectX9(四)
  10. python经典算法小程序-Python爬虫系列之微信小程序逆向某优选爬虫签名算法!厉害...