個別のアルゴリズムをつつく3-マージソート。一旦分割♪これマジだよぉ。
合併法はつついた?じゃあ、マージソートを一緒につつこう! マージソートの手順は次の通りだピヨォ。
【マージソートの大まかな流れ】
- 扱える大きさまでデータを二分割していく。データをつついて割っていくんだ。
- 細かに分かれたデータをソートしながら合体させていく。小さいから簡単♪
- 全てのデータ片を合体したらあら不思議。データが整列しているよ♪
てな寸法さ。
ドリィちゃん「相変わらず大雑把ね。」
でも、マージソートってイメージはこんなもんじゃない?
ドリィちゃん「まぁね。どうせこの説明は実装のおまけだからね。」
そっそれは酷い・・・でも言い返せない。まぁ、とにかく言語との実装を見て見て♪
ドリィちゃん「ちょっと、拗ねたの。もぉ・・・。仕方がないわね。私が説明しておくわ。
このソートはバブルソートよりも効率がいいと言われているわ。何故かというと、比較回数が少なくなるから。2分割にして比較するところがポイントなんだけど、 比較する場合は両方の先頭だけ比較するだけだし、途中で片一方がなくなったとき、後は残った方を出力するだけになるからね。その辺に注意してコードを見ればいいわ。後、このソートは再帰が伴うわ。覚悟してね。」
【言語ごとの実装例】
- C++・・・ 型固定