保育士「ハ~イ、みんな~、お喋りはやめて、一列に並ぼうね~
は~ダメだわ、元気がいいのはいいんだけど、ちっとも
言うことを聞いてくれないんだから…」
エリ㌧「オホホ、並べ替えで苦労しておるようじゃのう」
保育士「アナタは誰?」
エリ㌧「オホホ、わらわは歌って食べれる麗しき豚、エリザベー㌧じゃ」
保育士「子豚さんがウチの保育園になんの御用なのかしら?」
エリ㌧「そなたが苦労しているソート(並べ替え)を解決する為、
わらわがひと肌脱いでやろうかと思ってな」
保育士「既に全裸の様な気がするんですか…」
エリ㌧「愚か者!ひと肌脱ぐというのはモノの例えじゃ、本当に肌を脱いだら
わらわは食用肉まっしぐらではないか!」
保育士「ス、スミマセン」
エリ㌧「うむ、素直な事は善き哉じゃ、わらわはそなたにソート(並べ替え)
の方法について、伝授しに参ったのじゃ」
保育士「ソ、ソートの方法…ですか?」
エリ㌧「うむ、ソートのアルゴリズムとも言うな」
保育士「アルゴ…リズム?…変な体操の事ですか?」
エリ㌧「うつけ者!それは『ピタゴラスイッチ』の体操じゃろうが!
お?でも、意味合いは同じじゃな『アルゴリズム』とは
仕掛けとかカラクリとか処理手順などいう意味合いがある」
保育士「は、はあ」
エリ㌧「よいか、よく聞くのじゃ、ソートにはいくつかのアルゴリズムが
存在するのじゃ。それぞれの解説は以下のとおりじゃ」
1.単純選択法 (セレクションソート)
単純選択法(セレクションソート)とは、園児の並べ替えられていない子から
一番小さい子を一つ選び出し、すでに並べ替えられている園児のうち、
一番後ろの園児と交換していくという作業を繰り返すことにより並び替え
を行うものじゃ。
2.単純交換法 (バブルソート)
単純交換法(バブルソート)とは、園児の最後尾から順に身長を確認して、
その一つ前の園児との大小関係により交換していくという作業を繰り返す
ことにより並び替えを行うものなのじゃ。並び替えされた園児が先頭に
向かって泡のように浮き上がる様子から、バブルソートとも呼ばれるのじゃ。
3.単純挿入法
単純挿入法とは、並び替え済みの園児から並び替えする園児を入れるべき
場所を探し、場所を空けた後にその部分に割り込ませるという作業を
繰り返すことにより並び替えを行うものなのじゃ。
4.クイックソート
クイックソートとは、園児から適当に代表を選び出し、その子を中心に
して大小に分けていくという作業を何度も繰り返すことにより並び替え
を行うものじゃ。クイックソートは、園児の比較と交換回数が非常に
少ないのが特徴で、一般的なばらばら並びの園児に対して、
最も効率良く並べ替えを実行するのじゃ。
クイックソートは、実用上もっとも高速であるとされている並べ替え
アルゴリズムで、多くのプログラムで利用されているのじゃ。
5.ヒープソート
園児を「ヒープ・ツリー」という特殊な2分木構造の中に格納し、その構造
の特殊性を利用してソートしていく方法じゃ。
ヒープソートは、並べ替える元のデータの品質に関係なく、高速にソート
できるのじゃ。
6.マージソート
あらかじめ整列してある2つの隊列を合体させて、新しい、整列された隊列を得るという考え方に着目して、並べ替えたい隊列を細分化していき、再び併合(マージ)していくことで、並び替えを実現しようとする、ソートアルゴリズムなのじゃ。
このソートはかなり高速なソートで、クイックソート並の速度を誇るのじゃ。
7.コムソート
コムソートは、遅いことで有名なバブルソートの改良版じゃ、
ところが、この改良版が実はヒープソート並みに高速なのじゃ。
このソートは園児達をまず大雑把に並べて、そのあと少しずつ、細かい
部分まできれいに順序に並ぶようにしていく方法じゃ。
エリ㌧「どうじゃ、よくわかったじゃろう?さあ、この中からお主が
好きなソートアルゴリズムを選ぶがよいわさ!」
保育士「あのう…」
エリ㌧「なんじゃ?サインなら色紙を持参するのじゃ」
保育士「そうじゃありません、アルゴなんたらに頼らなくても
ウチの園児達は、自分たちで整列できるんですよ」
エリ㌧「なあにいい!自立式ソートじゃと!どの様なアルゴリズム
を使用するのじゃ?」
保育士「あ、いえ、アルゴリズムというのは特にないのですけど
あえていうなら私の手拍子のリズムに合わせて…かな」
エリ㌧「なんと!恐るべし、保育園児!わらわは感銘を受けたぞよ」
保育士「はあ、恐れ入ります」
エリ㌧「その技術、ここの園内だけで完結させるのはあまりにも惜しい
…決めた、わらわはここの園児になるぞよ!」
保育士「そ、そんな強引な…」
エリ㌧「まあ、固い事は抜きじゃ、ホレ、園児達も『うわあ、ブタさんだあ』
とか言って喜んでいるではないか」
保育士「まあ、確かに…ってそういう問題じゃありません!」
エリ㌧「よいではないか、一日体験園児として大目に見るのじゃ
さあ、園児たち、わらわにその技術の神髄を見せるのじゃ」
園児達「うわ~い」
エリ㌧「ぐわっ!コラ、鼻をつまむでない!しっぽも引っ張るな!
ブヒー、誰じゃわらわの腹部に『バラ』と書いたのは、
しかも乗ろうとするな、さらに同乗者を募るな、耳を
ハンドルに見立てるな!」
保育士「まあ、園児達から大人気ですのね」
エリ㌧「これは大人気というよりも、玩具としてもみくちゃにされている
という表現が正しいような気がするぞよ!
コリャー、わらわの尻に齧り付いているのはだれじゃ、
しかも『マズイ』って、失礼な!わらわだって、調味料を付ければ
麗しき風味になるのじゃ…って、何を言わせるのじゃ~!」
保育士「まあ、まあ、みんな楽しそう」
エリ㌧「待て待て、わらわは決して楽しくないぞよ!
あっひゃっひゃっひゃ!誰じゃ、肩ロースからヒレ肉にかけてを
くすぐるのは。わらわは、そのポイントがツボなのじゃ
鼻から豚汁が出そうじゃ!お願いじゃからやめてたもれ」
保育士「みんなブタさんに遊んでもらって良かったわね」
エリ㌧「良くないわ!助けてたもれ!わらわはこのままでは解体されて
しまう。この歳でトントロになるのはイヤじゃ」
保育士「おほほ、大げさな」
エリ㌧「イヤ、マジで、既に7割方幽体離脱状態じゃ」
保育士「仕方ないわねえ、ハ~イ、みんな~おやつの時間ですよ~」
園児達「うわ~い」
エリ㌧「はあ、はあ、はあ、やっと解放された、半分死んだぞよ」
保育士「育児って大変でしょ?」
エリ㌧「命懸けじゃな」
保育士「入園を認めましょうか?」
エリ㌧「ブヒー!それは勘弁じゃ」
保育士「ふふふ、やっぱりね、それにしてもかなり疲れたみたいね」
エリ㌧「ソートだけに相当疲れたのじゃ」