猴子排序睡眠排序java
时间: 2023-11-09 12:00:18 浏览: 135
猴子排序和睡眠排序都是比较有趣的排序算法,但实际应用中并不常见。猴子排序是一种随机排序算法,其时间复杂度非常高,不适用于大规模数据的排序。睡眠排序则是一种利用线程等待的方式进行排序,同样不适用于大规模数据的排序,并且容易受到系统环境的影响。
以下是猴子排序和睡眠排序的Java代码示例:
猴子排序:
```java
public static void monkeySort(int[] arr) {
Random rand = new Random();
while (!isSorted(arr)) {
for (int i = 0; i < arr.length; i++) {
int j = rand.nextInt(arr.length);
swap(arr, i, j);
}
}
}
public static boolean isSorted(int[] arr) {
for (int i = 1; i < arr.length; i++) {
if (arr[i] < arr[i - 1]) {
return false;
}
}
return true;
}
public static void swap(int[] arr, int i, int j) {
int temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
```
睡眠排序:
```java
public static void sleepSort(int[] arr) {
List<Thread> threads = new ArrayList<>();
for (int i : arr) {
Thread thread = new Thread(() -> {
try {
Thread.sleep(i * 10L);
System.out.print(i + " ");
} catch (InterruptedException e) {
e.printStackTrace();
}
});
threads.add(thread);
thread.start();
}
for (Thread thread : threads) {
try {
thread.join();
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
```
阅读全文