睡眠排序也就是,让排序的元素当做线程sleep睡眠的时间,睡醒就输出~
元素越大,醒的越晚,输出的越晚,然后排序不就完成了?
package com.lean;
public class SleepSort {
/*
* 数组中元素越大的值,sleep时间越长。sleep时间短的先输出
* 囧,排序的实际意义并不太大,时间太长了。乐乐就行了啊
*/
public static void main(String[] args) {
int a[]={5,6,7,1,3,2,4,9,8};
//创建睡眠线程
SortThread t[]=new SortThread[a.length];
//初始化睡眠线程
for (int i = 0; i < t.length; i++) {
t[i]=new SortThread(a[i]);
t[i].start();
}
}
}
//sortThread是一个动态类,当做内部类的时候,加上static。否则放到作为外部类~~哈
class SortThread extends Thread{
int ms;
public SortThread(int ms){
this.ms=ms;
}
@Override
public void run() {
super.run();
try {
sleep(ms*10+10);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
System.out.println(ms);
}
}