睡眠排序

       今天看到一個帖子,帖名叫《Genius sorting algorithm: Sleep sort》。看過以後感受雖然實用價值不高,但挺受啓發的,重點是它實在是太歡樂了。python

發明者帖子算法

:
Man, am I a genius. Check out this sorting algorithm I just invented.
朋友,我真是個天才,快來看看我剛發明的排序算法。


#!/bin/bash
function f() {
    sleep "$1"
    echo "$1"
}
while [ -n "$1" ]
do
    f "$1" &
    shift
done
wait

example usage:
./sleepsort.bash 5 3 6 3 6 3 1 4 7

評論shell

該貼有1000+回覆,我挑幾個有趣的回覆分享下:bash


路人A:ide

Oh god, it works.

But I don't like to wait 218382 seconds to sort '(0 218382)

性能

哦,春哥,它竟然能用,但我不想用218382秒去排(0 218382)this


路人B:spa

If the difference between any two of the numbers is too small, race conditions will fuck you up the ass.線程

若是兩個數之間的差距過小,競態條件就要爆你菊花了。設計


路人C:

What about 
./sleepsort -1 -2 -3 ?

If you slept exp(n) instead of n it could easily include negative integers too!

排-1 -2 -3怎麼辦?若是你睡exp(n)而不是n,它就能包含負數了。


路人D:

Someone email this to Knuth

你能夠給Knuth發郵件了


路人E:

I think thats brilliant :)

Would be fun to design a hardware sorter, based on this..

這招挺高,能夠根據這個設計一個硬件排序器


路人F:

This has a best case O(n) and an infinity high worst case. (because its 0(n * Constant) and the constant could be much greater than n)

它有一個最好的O(n)的時間複雜度和一個無窮大的最壞複雜度,由於這個常數可能比n大的多的多


路人G:

I heartily disagree with all the attempts to downplay the brilliance of the sleep sort algorithm. Many of you have missed the important point that while traditional sorting algorithms can only utilize one core, sleep sort has the capacity to use the full power of a massively parallel execution environment.
Given that you need nearly no computing in each of the threads, you can implement them using low-power CPUs, so this is in fact a GREEN COMPUTING algorithm.
Oh, and did I mention that the algorithm can also run inside a cloud...?
Sure, you're a genius!

我由衷的不一樣意那些低估sleepsort這個天才算法的舉動,許多人可能忽略了一個重點那就是傳統的排序只能利用一個核心,而sleepsort有這個能力充分利用能夠作大量並行計算的環境。

在每一個線程中給出你幾乎不須要計算的部分,你能夠用低性能CPU搞定它們,因此事實上,這是一個「綠色計算」算法。

還有我提到的這個方法能在雲端運行不?

總之,你是個天才!


路人H:

pretty fucking cool !

真是太TM的cool了!

相關文章
相關標籤/搜索