1.多线程睡眠排序:利用多线程,将数组中的值以睡眠时间传到线程中,然后根据线程结束时间来进行排序
package com.test.demo5;
public class SleepSort {
public static void main(String[] args) {
int[] nums={15,3,8,10,28,19,20};
sleepSort(nums);
}
public static void sleepSort(int[] nums){
//多线程同时启动
for (int i = 0; i < nums.length; i++) {
final int j=i;
//使用匿名对象实例化多线程
new Thread(new Runnable() {
@Override
public void run() {
//这里匿名线程对象不能传入一个变化的i
// Thread.sleep(nums[i]);
try {
Thread.sleep(nums[j]);
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println(nums[j]);
}
}).start();
}
}
}
2.猴子排序法:让无数只猴子坐在打字机前随机敲击键盘,如果不限定时间,那么它们总有一天会打出一部《莎士比亚全集》,这样也能打印出正确的数组顺序