我们学数据结构的时候会学到多种排序算法,基本上都是基于比较的排序,下面的这个排序算法并不是基于比较,确切的说它是基于cpu调度算法实现的,这个算法的作者称之为--睡眠排序。
它的基本思想是,对一组数据进行排序,不能存在负数值,这个数是多大,那么就在线程里睡眠它的10倍再加10,不是睡眠和它的数值一样大的原因是,当数值太小时,误差太大,睡眠的时间不比输出的时间少,那么就会存在不正确的输出结果。
下面给出JAVA版本的代码,其中包含注释:
public class SleepSort {
public static void main(String[] args) {
int[] ints = {1,4,7,3,8,9,0,2,6,5,3,6,9};
//有多少个元素定义多少个线程
SortThread[] sortThreads = new SortThread[ints.length];
//对给一个线程对象初始化
for (int i = 0; i < sortThreads.length; i++) {
sortThreads[i] = new SortThread(ints[i]);
}
//运行每一个线程
for (int i = 0; i < sortThreads.length; i++) {
sortThreads[i].start();
}
}
}
class SortThread extends Thread{
int ms = 0;
public SortThread(int ms){
this.ms = ms;
}
public void run(){
try {
sleep(ms*10+10);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
System.out.println(ms);
}
}
分享到:
相关推荐
* 睡觉版排序算法 * 时间复杂度,空间复杂度都是浮云啊.
主要介绍了go语言睡眠排序算法,实例分析了睡眠排序算法的原理与实现技巧,需要的朋友可以参考下
大佬们好,我是个弟弟。来自精易论坛 。 听说论坛开赛了,马不停蹄赶到,却发现已经开始一天了... 赶不上了,就这样上了!给大家安利个排序算法。(调用了鱼翅的多线程模块哦)
基于Go 睡眠排序实现。 Go 可能是用于实现这种荒谬算法的最佳语言。 该包导出两种方法: sleepsort.IntSlice(input []int, itemDuration time.Duration) []int sleepsort.FloatSlice(input []float64, ...
4.4.1 算法-冒泡排序113 4.4.2 插入排序115 4.5 增强for循环116 4.6 本章练习117 第5章 5.1 面向过程的设计思想120 5.2 面向对象的设计思想120 5.3 抽象121 5.3.1 对象的理解121 5.3.2 Java抽象思想的实现122 5.4 ...
Collections是针对集合类的一个帮助类,他提供一系列静态方法实现对各种集合的搜索、排序、线程安全化等操作。 10、&和&&的区别。 &是位运算符,表示按位与运算,&&是逻辑运算符,表示逻辑与(and)。 11、HashMap...
CPU时间:显示CPU频率使用情况和深度睡眠,并可以选择按最常用的频率排序。 更新或安装ElementalX:在您的Nexus 6P,Nexus 5X,Nexus 5,Nexus 6,Nexus 7(2013),Nexus 9,HTC One m7,HTC One m8,HTC One m9,...
Collections是针对集合类的一个帮助类,他提供一系列静态方法实现对各种集合的搜索、排序、线程安全化等操作。 13、&和&&的区别。 &是位运算符,表示按位与运算,&&是逻辑运算符,表示逻辑与(and)。 14、...
垃圾回收与算法 .................................................................................................................................. 26 2.4.2. 2.4.3. 2.4.4. 2.4.5. 2.4.5.1. 2.4.5.2. ...
标记整理算法(Mark-Compact).................................................................................................. 28 分代收集算法 ..............................................................