可以帮我写一段java语言的猴子排序嘛
当然可以,以下是一段Java语言的猴子排序算法:
public class MonkeySort {
public static void monkeySort(int[] arr) {
int n = arr.length;
while (!isSorted(arr)) {
for (int i = 0; i < n; i++) {
int j = (int) (Math.random() * n);
int temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
}
}
public static boolean isSorted(int[] arr) {
int n = arr.length;
for (int i = 0; i < n - 1; i++) {
if (arr[i] > arr[i + 1]) {
return false;
}
}
return true;
}
public static void main(String[] args) {
int[] arr = {5, 3, 8, 4, 2};
monkeySort(arr);
System.out.println(Arrays.toString(arr));
}
}
该算法的基本思想是随机交换数组中的元素,直到数组变得有序。在每次交换之后,需要检查数组是否已经有序。如果是,则算法结束;否则,继续随机交换数组元素,直到数组有序。
在上面的代码中,我们首先定义了一个monkeySort()方法,该方法接受一个整数数组作为参数,并使用while循环来判断数组是否已经有序。在循环中,我们使用for循环来遍历数组中的元素,并使用Math.random()方法生成一个随机索引,然后交换当前元素和随机索引处的元素。最后,我们使用isSorted()方法来检查数组是否已经有序。
isSorted()方法接受一个整数数组作为参数,并使用for循环遍历数组中的元素。在循环中,我们检查当前元素是否大于下一个元素。如果是,则数组不是有序的,返回false。如果循环结束后没有返回false,则数组已经有序,返回true。
在main()方法中,我们定义了一个整数数组,并将其传递给monkeySort()方法。最后,我们使用Arrays.toString()方法将排序后的数组打印到控制台上。
原文地址: https://www.cveoy.top/t/topic/bF8k 著作权归作者所有。请勿转载和采集!