public class BogoSortExample {
public static void main(String[] args) {
int[] sorted = {1, 1, 2, 3, 4, 4, 6, 7, 8};
int[] array = {2, 1, 1, 3, 6, 4, 4, 7, 8};
bogoSort(array);
assert Arrays.equals(sorted, array);
}
/**
* Sorts the specified array into ascending numerical order.
*
* @param array the array to be sorted.
*/
public static void bogoSort(int[] array) {
while (!isSorted(array)) {
shuffle(array);
}
}
/**
* Returns {@code true} if the specified array is in ascending numerical order
* otherwise returns {@code false}.
*
* @param array the array to be checked for ascending numerical order.
* @return {@code true} if the specified array is in ascending numerical order
* otherwise {@code false}.
*/
public static boolean isSorted(int[] array) {
for (int i = 0; i < array.length - 1; i++) {
if (array[i] > array[i + 1]) {
return false;
}
}
return true;
}
/**
* Randomly permutes the specified array using a default source of randomness.
* All permutations occur with approximately equal likelihood.
*
* @param array the array to be shuffled.
*/
public static void shuffle(int[] array) {
Random r = random;
if (r == null) {
random = r = new Random();
}
shuffle(array, r);
}
private static Random random;
/**
* Randomly permutes the specified array using the specified source of randomness.
* All permutations occur with equal likelihood assuming that the source of
* randomness is fair.
*
* @param array the array to be shuffled.
* @param random the source of randomness to use to shuffle the array.
*/
public static void shuffle(int[] array, Random random) {
for (int i = array.length - 1; i > 0; i--) {
int j = random.nextInt(i + 1);
int temp = array[i];
array[i] = array[j];
array[j] = temp;
}
}
}
奇怪的知识1:🐒猴子排序
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- 【叮】上课。点选有话说,我是上衣,奇怪的知识又增加了,真的吗真的吗。 人的鼻子能记住5万种气味。心脏每天要输送7....
- 第一章 “怪你太过美丽,如毒蛇狠狠禁锢彼此关系”当我还在神游太虚的时候“哥哥”动人的歌声让她猛的回过神,才发现在开...
- 昨天刷短视频的时候,刷到了这样一段话:“一个知识越贫乏的人,越是有一个种莫名奇怪的勇气和一种莫名奇怪的自豪感,知识...