很多人呐,学排序时,真的就是万念俱灰,天天以泪洗面(比如):
quicksort ?-?
mergesort QAQ
但但但但是,我们有一个超强的排序函数: sort
可是,有些老师不给用,怎么办呢?
有一个办法!Monkeysort (猴子排序)
我们,从头到尾的找一遍,如果要排序怎么办呢?
像猴子一样,随机那两个数排就行了,但这非常看人品,极容易出现: RE TLE
还是直接上代码吧:
#include<bits/stdc++.h>
using namespace std;
int n,a[1000005],bi;
int main()
{
cin>>n;
for(int i=1;i<=n;i++) cin>>a[i];
for(int i=2;i<=n;i++)
{
if(a[i]<a[i-1])
{
bi=1;
break;
}
srand(time(0));
while(bi)
{
int x=rand()%n+1,y=rand()%n+1;
if(x>y) swap(x,y);
if(a[x]>a[y])
{
swap(a[x],a[y]),bj=0;
for(int i=2;i<=n;i++)
if(a[i]<a[i-1])
{
bi=1;
break;
}
}
}
}
for(int i=1;i<=n;i++) cout<<a[i]<<" ";
return 0;
}
大家要注意: