快速排序java代码 猴子排序算法?
猴子排序算法?什么样的排名是猴子排名?Monkey代表无序,Monkey ranking表示无序,直到有序为止。这样做的真正意义是对无序数组进行排序,并查看它是否会被排序。这是一个概率事件。可能一次之
猴子排序算法?
什么样的排名是猴子排名?
Monkey代表无序,Monkey ranking表示无序,直到有序为止。
这样做的真正意义是对无序数组进行排序,并查看它是否会被排序。这是一个概率事件。可能一次之后就订购了,也可能多次之后仍然没有订购。
实现方法如下:
1,定义数组
2,数组随机
3,检查数组是否有序,继续无序,有序时停止
这样一个简单的实现思想,但是它需要用到随机化的知识和标志变量的实现技巧
代码如下://得到的数据表明排序前要排序多少次
#include<iostream>
使用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()//生成介于0-9之间的数字
if(flag[t]}{
res[count]=source[t
]num-->]}for(int i=0I<9i){
]if(res[i]>res[i 1]}{//仅从小到大的排列
返回0
}
}}
}]return 1]}]int Main(){
int count=0
for(int i=0I<10i){
CIN>>source[i
}
while(sort()!=1){
count]}
cout<< “run”<< count< “times”<< ndl
return[0
请问大神最奇葩的排序算法是什么?
我想介绍一下这个睡眠排序算法,Dana在4chan上匿名发布的消息:
此算法的基本原理是为数组中的每个数据X创建一个新线程:
●睡眠时间X秒
●打印输出X
所有数据将同时被排序。
它适用于所有非负值数据。
在网上论坛上很少看到这样的排序算法。