注意: sleep sort は、あくまでもネタです。ネタとして楽しんでください。
コメント欄でも指摘されてますが、実用に耐えるものではありません。
間違っても実用しようとか思わないように!
一部で話題沸騰中のソートアルゴリズム「sleep sort」を jQuery 用プラグインとして実装してみました。
via. 常識を覆すソートアルゴリズム!その名も"sleep sort"! – Islands in the byte stream
とりあえず、デモ。
下の textarea に数値をスペース区切りで入力してから「Sleep Sort!」をクリックしてください。
ソートされるはずです。
ソースはこんな感じ
jQuery.fn.sleep_sort = function() {
var t = jQuery(this);
var a = t.val().replace(/[^\s\d]/,'').split(/[\s]/);
t.val('');
jQuery(a).each(function(){
setTimeout((function(num){
return function(){
t.val(t.val() + (t.val() !== '' ? ' ' : '') + num.toString());
};
})(this), Number(this));
});
}
これで $('#sleepsort').sleep_sort(); とかってやると実行できますよ。

2011年5月20日 金曜日 12:24 PM



これは信用できないソートです
なぜなら遅延並列処理を数ミリ秒程度の差で実行した場合、高負荷時に容易に実行順序が逆転してしまうからです
このソートだけをテストしている時にはまず問題は起きないでしょうが、実際アプリケーションに組み込むとかなりたちの悪いバグになってしまいます
特に実行環境が多彩で、比較的実行速度が不安定なJavaScriptのような言語で実装することは間違っても避けなければなりません
これは並列処理の危険性を無視したとても悪い見本です
名無しさん、はじめまして。
あー、すいません。
リンク先見てもらうと分かるんですが、この sleep sort はネタ的な面白さがあるだけで実用にはならないものです
僕も、こんなんが実用になるとは思ってませんし、実際のアプリケーションに使おうとも思ってません。
本文中に「ネタ」とか書いておけば良かったっすね。申し訳ない。
sleep sort する jQuery プラグイン : dogmap.jp http://bit.ly/jbKlBF
0複数入力するとうまく動かないね:sleep sort する jQuery プラグイン : dogmap.jp http://bit.ly/lVeRa7
javascriptのsetTimeoutだと一桁台は厳しいかも
sleep sort する jQuery プラグイン : dogmap.jp http://bit.ly/mLdb4R
すんません、sleep sortは何が凄いのでしょうか… RT @wokamoto ブログにエントリ: sleep sort する jQuery プラグイン – 一部で話題沸騰中のソートアルゴリズム「sleep sort」を jQuery… http://dogmap.jp/El
ブログにエントリ: sleep sort する jQuery プラグイン – 一部で話題沸騰中のソートアルゴリズム「sleep sort」を jQuery 用プラグインとして実装してみました。via. 常識を覆すソートアルゴリズム!そ… http://dogmap.jp/El
ブログにエントリ: sleep sort する jQuery プラグイン – 一部で話題沸騰中のソートアルゴリズム「sleep sort」を jQuery 用プラグインとして実装してみました。via. 常識を覆すソートアルゴリズム!そ… http://dogmap.jp/El