1. 程式人生 > >一些奇怪的板子

一些奇怪的板子

1、猴子排序(Monkey_Sort)

號稱最優複雜度最低的排序演算法

最快複雜度:\(O(n)\)
最慢複雜度:\(O(+\infty)\)
平均複雜度:\(O(n\times n!)\)

演算法思路:
1、檢查資料是否有序,若有序,goto 3;若無序,goto 2
2、隨機打亂資料,goto 1
3、輸出資料

程式碼:

struct Monkey_Sort{
    inline bool check(int *st,int *ed){
        int *now=st;
        while(now+1!=ed){
            if(*(now+1)<*now)
                return 0;
            now++;
        }
        return 1;
    }
    inline void sort(int *st,int *ed){
        while(!check(st,ed))
            random_shuffle(st,ed);
    }
}M;