Posted by at 2011年5月20日 金曜日

注意: 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(); とかってやると実行できますよ。

トラックバック & ピンバック » 表示する

コメント

  • Windows Internet Explorer 2011年5月21日 土曜日 5:41 PM

    これは信用できないソートです
    なぜなら遅延並列処理を数ミリ秒程度の差で実行した場合、高負荷時に容易に実行順序が逆転してしまうからです
    このソートだけをテストしている時にはまず問題は起きないでしょうが、実際アプリケーションに組み込むとかなりたちの悪いバグになってしまいます
    特に実行環境が多彩で、比較的実行速度が不安定なJavaScriptのような言語で実装することは間違っても避けなければなりません
    これは並列処理の危険性を無視したとても悪い見本です

    名無し 返信
    • Mac OS Mozilla Firefox 2011年5月21日 土曜日 6:06 PM

      名無しさん、はじめまして。

      これは信用できないソートです
      なぜなら遅延並列処理を数ミリ秒程度の差で実行した場合、高負荷時に容易に実行順序が逆転してしまうからです
      このソートだけをテストしている時にはまず問題は起きないでしょうが、実際アプリケーションに組み込むとかなりたちの悪いバグになってしまいます

      あー、すいません。
      リンク先見てもらうと分かるんですが、この sleep sort はネタ的な面白さがあるだけで実用にはならないものです :-D
      僕も、こんなんが実用になるとは思ってませんし、実際のアプリケーションに使おうとも思ってません。
      本文中に「ネタ」とか書いておけば良かったっすね。申し訳ない。

  • twitter 2011年5月20日 金曜日 4:50 PM

    sleep sort する jQuery プラグイン : dogmap.jp http://bit.ly/jbKlBF

  • twitter 2011年5月20日 金曜日 4:29 PM

    0複数入力するとうまく動かないね:sleep sort する jQuery プラグイン : dogmap.jp http://bit.ly/lVeRa7

  • hatena bookmark 2011年5月20日 金曜日 4:00 PM

    javascriptのsetTimeoutだと一桁台は厳しいかも

  • twitter 2011年5月20日 金曜日 2:12 PM

    sleep sort する jQuery プラグイン : dogmap.jp http://bit.ly/mLdb4R

  • twitter 2011年5月20日 金曜日 1:41 PM

    すんません、sleep sortは何が凄いのでしょうか… RT @wokamoto ブログにエントリ: sleep sort する jQuery プラグイン – 一部で話題沸騰中のソートアルゴリズム「sleep sort」を jQuery… http://dogmap.jp/El

  • twitter 2011年5月20日 金曜日 12:11 PM

    ブログにエントリ: sleep sort する jQuery プラグイン – 一部で話題沸騰中のソートアルゴリズム「sleep sort」を jQuery 用プラグインとして実装してみました。via. 常識を覆すソートアルゴリズム!そ… http://dogmap.jp/El

  • twitter 2011年5月20日 金曜日 12:07 PM

    ブログにエントリ: sleep sort する jQuery プラグイン – 一部で話題沸騰中のソートアルゴリズム「sleep sort」を jQuery 用プラグインとして実装してみました。via. 常識を覆すソートアルゴリズム!そ… http://dogmap.jp/El

コメントする

入力いただいたメールアドレスから Gravatar に登録されているアイコンを表示します。
(メールアドレスは公開されません)

改行と段落タグは自動で挿入されます。メールアドレスは表示されません。

:mrgreen: :-P :-D :-) ;-) :-o :-| :-( 8-O :-? 8-) :twisted: :evil: :oops: :roll: :cry: :lol: :-x more »