用Java写一个猴子排序
时间: 2024-05-29 12:12:20 浏览: 166
以下是Java实现猴子排序的示例代码:
public class MonkeySort {
public static void monkeySort(int[] arr) {
int n = arr.length;
while (!isSorted(arr)) {
shuffle(arr);
}
}
private static boolean isSorted(int[] arr) {
for (int i = 1; i < arr.length; i++) {
if (arr[i] < arr[i - 1]) {
return false;
}
}
return true;
}
private static void shuffle(int[] arr) {
int n = arr.length;
for (int i = 0; i < n; i++) {
int randomIndex = (int) (Math.random() * n);
int temp = arr[i];
arr[i] = arr[randomIndex];
arr[randomIndex] = temp;
}
}
public static void main(String[] args) {
int[] arr = {5, 2, 8, 1, 9, 4, 3, 7, 6};
monkeySort(arr);
for (int i : arr) {
System.out.print(i + " ");
}
}
}
解释:
monkeySort()方法接受一个整数数组作为参数,然后在数组未排序之前一直重复洗牌操作,直到数组排序完成。
isSorted()方法检查数组是否已排序。它遍历数组并检查相邻元素是否已按升序排列。
shuffle()方法随机打乱数组。它使用随机数生成器生成一个随机索引,并交换该索引处的元素和当前元素。
在main()方法中,我们创建一个整数数组并调用monkeySort()方法对其进行排序。最后,我们遍历已排序数组并打印每个元素。
阅读全文