Seki's Diary は 移転しました

移転先: http://seki.sblo.jp/


2005-03-27

_ [misc]クイックソートが5行で書けるなんて

そういえば、私も昔F-BASICでバブルソートを書いたことがあったかもしれない、などと思いつつ、ちょっと調べてみました。WikipediaのQuicksortには、いくつかの言語でのクイックソートが記述されています。Ruby でも5行のようです。
def sort(array)
  return [] if array.empty?
  left, right = array[1..-1].partition { |y| y <= array.first }
  sort(left) + [ array.first ] + sort(right)
end
Pythonだと4行、そしてJoyという言語だと3行らしいです。
DEFINE sort == [small][]
               [uncons [>] split]
               [[swap] dip cons concat] binrec .
さらに、Quicksort implementationsでもっといろいろな言語でのクイックソートが記述されています。Jでも3行ですが、これは記号ばかりでなんだかすごい言語ですね。
sort =: ]`(($:@: ((}.<:{.)#}.)) 
             ,{., 
            ($:@: ((}.> {.)#}.)))  @. (*@#)
お名前:
E-mail:
コメント:

Categories |

過去の日記
2000|01|02|03|04 TDS|05|06|07|08|09|10|11|12|
2001|01|02|03|04|05|06|07|08|09|10|11|12|
2002|01 tDiary|02|03|04|05|06|07|08|
2002|07|
2003|07|08|09|10|11|12|
2004|01|02|03|04|05|06|07|08|09|10|11|12|
2005|01|02|03|04|05|06|07|08|09|10|11|12|
2006|01|02|03|04|05|06|08|09|
<< 2005/03/ 1 1. [misc]大学TLOの信義則違反
2. [misc]書きかえたい言葉一覧
2 1. [misc]「Firefox」プラグイン特集 第1回
2. [chess]チェス対局システム
3 1. [misc]RSS 2.0 における author 要素
4 5 6 7 8 9 1. [misc]花粉
2. [News]「Googleサジェスト」日本語版が公開に
3. [misc]空気清浄機
10 1. [soil]「土壌の物理性」バックナンバー
11 1. [chess]カスパロフ氏が引退表明 スパコン対決のチェス王者
2. [misc]UUME
12 1. [News]アマゾン、「女の子にはピンクの包装紙」を提案するシステムで特許取得
2. [News]Google ニュース カスタマイズ版
13 1. [shogi][chess]将棋チェスネット
14 1. [misc]プロバイダ乗り換え?
15 16 17 1. [misc]移転通知
18 1. [misc]Jens Spinnet 解約手続き完了
2. というわけで、Jens 関係のURLをpurlに置換。
19 1. [misc]att.ne.jpアカウント消滅
2. メールについては、sekik@tka.att.ne.jp がなくなった。
3. [misc]花粉
4. [misc]Ring Server Project が NTP サーバのサービスを開始
5. [misc]環境変数チェッカー
20 21 22 1. [misc]簡易ファイル名検索システム
23 24 1. [misc]関東リアルタイム花粉情報
25 1. [misc]CSSの文字サイズ
2. [book]フード・セキュリティーーだれが世界を養うのか
26 27 1. [misc]クイックソートが5行で書けるなんて
28 1. [chess]JCA
3. 「JCA代表会議に関する規程」 の5.諸則には
5. それにしても、「JCA普通会員規程」の3.1.とか、すごいな…。
7. [misc]soil09停止
29 1. [misc]個人情報保護法
30 1. [misc]花粉症
31 >>
2003年7月1日から 今日 昨日
PV測定 (2005年1月11日設置) 無料アクセスカウンターofuda.cc「全世界カウント計画」

Copyright (C) 2006 Katsutoshi Seki. All rights reserved.