TA的每日心情 | 怒 2018-12-13 14:00 |
---|
签到天数: 26 天 [LV.4]偶尔看看III
|
原帖地址
下面请欣赏这个天才的代码,相信你会大吃一惊的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[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);
}
}
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([4,5,7,1,2,4,5], alert);
众所周知,各种排序算法都需要比较数字的大小,然而该算法超出了该范畴,不需要进行比较,仅仅通过建立多线程然后让线程睡眠对应的时间来达到排序的目的,效率怎么样先不多说,光这个想法就惊世骇俗了吧。 |
|