@daisukekonno 普通のソートが対象の相対的な位置を決めるのに対して、#sleepsort は「あらかじめ(時間軸上での)絶対的な位置が決まっている」のが世界観を変えてくれるというか、決定論的なところが面白い。このプログラムが起動した時点でなるべき世界にしかならない。
2011-05-20 08:54:30@nogcci たしかに。 #sleepsort はどこかハッシュテーブルに似ていると感じたのはそういうことか。データを比較して相対的に格納していくリストやツリーに対して、ハッシュ値によって絶対的な格納位置を決めていくのに似ている。
2011-05-20 09:01:37sleep sort http://bit.ly/miJHxE って実質上計算量 O(n) だけど、原理的には選択ソートと同じことをしてるので O(n^2) になる、のかな。まぁ実際にはデータ数が多くなるとスケジューラーの実装依存で計算量以前にバグったりしそうだが。
2011-05-20 10:21:18メモリ空間の入れ替えを時間演算で行っていると言う点では斬新。原理はバケットソートに近い?プロセステーブルあふれと超高負荷環境下での失敗可能性が怖い RT @madogiwa 常識を覆すソートアルゴリズム!その名も"sleep sort"!http://bit.ly/m7A6qe
2011-05-20 11:54:09@nogutetu 違うかもしれないけどsleep sortはcounting sortのある実装なのでは? だとすると最大値が事前に分かっているという仮定の下にO(n)。
2011-05-20 15:00:42@negiyas @nogutetu 比較を用いたsortではO(n log n) (logの基数2)が下限なので、sleep sortはある意味すごい。
2011-05-20 15:05:34@negiyas @nogutetu そして、sleepの実装は、大量のプロセスが眠りにくるとは想定してないだろうから、きっとinsertion sortくらいのもの使ってて、O(n^^2)かかるというオチ?w (まあ、OSによるのでしょうが)
2011-05-20 17:33:23タイマ関連を十分軽量にすれば、radixソートより時間は掛かってもCPU資源の節約になる場合ありかな。mを最大値としてCPU消費はnとn log mだよね? / 常識を覆すソートアルゴリズム!その名も"sleep sort"! - Is… http://htn.to/H33fXR
2011-05-20 17:11:34sleep sortを教授に紹介したら、OS屋さんならではの指摘が在ったのでなるほどでした。けっきょくのところ待ち時間を無視しても計算量自体は短くならないのですという話でした。
2011-05-20 17:44:39無理にこじつけるならば、sleep sortは、sortをスケジューリングに帰着する手法であり、そのsleepを二項ヒープで実装することで、heapsortになる。つまり、sleep sortはheapsortに至る途中のアイデアと見なせる。
2011-05-20 21:23:21sleep sortの計算量がすごいらしいけど、そもそもsleep命令がO(1)じゃないでしょとか言っちゃだめですかそうですか
2011-05-20 21:43:24うーん、sleep sort面白いなぁ。これを実用性がないとみるのはもったいないな…もっと考察できる。時間軸の概念は計算量にはないアイディアだし。
2011-05-20 21:57:45@giwarb sleep sortの場合時間経過を大小比較の肩代わりにしてるのがポイントになるわけだ。時間を使って計算するなんて概念は一般的な計算モデルにはなかったはず。ステップ数とは違う概念だからだ。
2011-05-20 22:05:58