快速排序 python菜鸟教程-C 排序算法
有种排序叫做猴子排序(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 排序算法相关推荐
- 快速排序 python菜鸟教程-NumPy 排序、条件刷选函数
NumPy 排序.条件刷选函数 NumPy 提供了多种排序的方法. 这些排序函数实现不同的排序算法,每个排序算法的特征在于执行速度,最坏情况性能,所需的工作空间和算法的稳定性. 下表显示了三种排序算法 ...
- 快速排序 python菜鸟教程-十大编程算法助程序员走上高手之路
算法一:快速排序算法 快速排序是由东尼·霍尔所发展的一种排序算法.在平均状况下,排序 n 个项目要Ο(n log n)次比较.在最坏状况下则需要Ο(n2)次比较,但这种状况并不常见.事实上,快速排序通 ...
- 快速排序 python菜鸟教程-Python菜鸟文本处理4种方法
https://www.xin3721.com/eschool/pythonxin3721/ 自从认识了python这门语言,所有的事情好像变得容易了,作为小白,逗汁儿今天就为大家总结一下python ...
- 快速排序 python菜鸟教程-快速排序
虽然快速排序称为分治法,但分治法这三个字显然无法很好的概括快速排序的全部步骤.因此我的对快速排序作了进一步的说明:挖坑填数+分治法: 先来看实例吧,定义下面再给出(最好能用自己的话来总结定义,这样对实 ...
- 快速排序 python菜鸟教程-1.6 快速排序
上方没有C#实现,我补充一下,如下所示: //快速排序(目标数组,数组的起始位置,数组的终止位置) static void QuickSort(int[] array, int left = 0, i ...
- 一篇夯实一个知识点系列--python实现十大排序算法
写在前面 排序是查找是算法中最重要的两个概念,我们大多数情况下都在进行查找和排序.科学家们穷尽努力,想使得排序和查找能够更加快速.本篇文章用Python实现十大排序算法. 很多人学习python,不知 ...
- python菜鸟教程官网pandas,python菜鸟教程官网numpy
求比较好的Python练习网站 适合 Python 入门学习的5个网站1. Python官方网站最权威的 Python 教程.2. 菜鸟教程 Python 教程基本入门级教程,还有一些简单的进阶教程. ...
- python菜鸟教程100实例-运维人员学习python菜鸟教程
这篇文章主要为大家详细介绍了运维人员学习python菜鸟教程,具有一定的参考价值,可以用来参考一下. 对python这个高级语言感兴趣的小伙伴,下面一起跟随512笔记的小编两巴掌来看看吧! 从不会写代 ...
- 冒泡和快速排序的时间复杂度_八大排序算法性能分析及总结
一.排序算法说明 排序的定义:对一个无序的序列进行排序的过程. 输入:n个数:a1,a2,a3,-,an. 输出:n个数的排列:a1,a2,a3,-,an,使得a1<=a2<=a3< ...
最新文章
- 写文章 TEE技术分析【转】
- 使用JUnit进行单元测试
- 剑指offer:二叉树的深度
- django数据模型字段和通用参数说明
- boost::iostreams::example::container_sink用法的测试程序
- Windows CE 6.0中断处理过程(转载)
- mysql 5.6 修改端口_mysql5.6.24怎么修改端口号
- 计算机科学与技术专业机遇与挑战,科学网—填报专业大类志愿:机遇与挑战 - 雒运强的博文...
- 将list转为json字符串
- Linux select/poll/epoll
- 张朝阳寄语“校花”把参赛比做登山 走到不同阶段都是一种成就
- 蓝桥杯 ALGO-34算法训练 纪念品分组(贪心算法+排序)
- matlab (.m)文件生成 windows 可执行(.exe)文件
- (转)基于深度组合的选股策略
- 通达OA2013完美平台补丁以及手机短信服务配置
- freeswitch exporter
- tekla导出HTML,TEKLA常见问题解答
- opencv imwrite()保存图片崩溃
- 第三方登录—QQ登录
- 通配符(一般用来查找文件)