我不知道这个能不能算排序。。。维基上有这个排序名称。。。但我感觉它纯碎在卖萌。。。
基本思路:随机打乱数组,然后看看数组有序了没,如果没?继续随机打乱继续看。。。直至有序。
神一般的低效。排几十个数不知道要跑多久。。。
public static void bogoSort(int[] A){
while(!inOrder(A))
shuffle(A);
} private static boolean inOrder(int[] A){
for(int i = 0; i < A.length-1; i ++){
if(A[i] > A[i+1])return false;
}
return true;
} private static void shuffle(int[] A){
Random rand = new Random();
for(int i = 0; i < A.length; i ++){
int tmp = rand.nextInt(A.length);
swap(A, i, tmp);
}
}
Java