睡眠排序也就是,让排序的元素当做线程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); } }
原文地址:http://blog.csdn.net/supera_li/article/details/39267283