天才排序算法——睡眠排序
原帖地址下面请欣赏这个天才的代码,相信你会大吃一惊的O(∩_∩)O
java版本的:
public class SleepSort {
public static void main(String[] args) {
int[] ints = {1,4,7,3,8,9,2,6,5};
SortThread[] sortThreads = new SortThread;
for (int i = 0; i < sortThreads.length; i++) {
sortThreads = new SortThread(ints);
}
for (int i = 0; i < sortThreads.length; i++) {
sortThreads.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);
}
}
js版本:
// Javascript
function lazySort(list, callback) {
var result = [];
list.forEach(function(i) {
setTimeout(function() {
result.push(i);
if(result.length == list.length) {
callback(result);
}
}, i);
});
}
lazySort(, alert);
众所周知,各种排序算法都需要比较数字的大小,然而该算法超出了该范畴,不需要进行比较,仅仅通过建立多线程然后让线程睡眠对应的时间来达到排序的目的,效率怎么样先不多说,光这个想法就惊世骇俗了吧。 Genius 发表于 2014-8-27 17:16
卧槽,暂且不论沙发,我说地址呢!!!原帖呢?!!
http://dis.4chan.org/read/prog/1295544154
我记得我有加超链接的!不知道怎么就没了 卧槽,暂且不论沙发,我说地址呢!!!原帖呢?!!
页:
[1]