快速排序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

所有数据将同时被排序。

它适用于所有非负值数据。

在网上论坛上很少看到这样的排序算法。