【マニアック音声】ソートアルゴリズムの実行過程を動画と音階で表現してみた

整頓大好き、散らかってるとか許せない!っていう性癖を持つお友達がこころ穏やかに気持ちよくなれる、ちょっとマニアックな動画を紹介するよ。ソートアルゴリズムというのはひとくちで言えばバラバラのモノを順番に「ならべかえる」仕組みのこと。例えばマンガの単行本を1巻から最終巻に順番に並べたり、牛乳パックを手前から賞味期限が近い順に陳列したり。にんげんなら何も考えずにできることでも、機械には0から並べ方を教えてあげないとできないから、コンピュータの誕生から現在に至るまで、いろんな並べ方が考案されてきたっていうすんぽう。みんなが持ってる携帯電話のアドレス帳も、ソートアルゴリズムによって50音順やアルファベット順にならべかえられているんだよ。


15 Sorting Algorithms in 6 Minutes

バラバラのものがジワジワと、最終的にキレイに並ぶカタルシス、気持ちいい!8bitな三角波形な音源も、コンピュータが頑張ってるっぽい雰囲気とマッチしてるね。

この動画は、人間が目と耳で認識できるくらいのスピードに落として並べ替えているから、見ていて楽しいけど、実際使ってる携帯電話やパソコンのデータの並び替えがこんなに遅かったら使い物にならないかもね。この動画でみられるソートアルゴリズムは順番に以下の通り。

① 選択ソート(Selection Sort)
② 挿入ソート(Insertion Sort)
③ クイックソート(Quick Sort)
④ マージソート(Merge Sort)
⑤ ヒープソート(Heap Sort)
⑥ 直接基数法による基数ソート(LSD Radix Sort)
⑦ 基数交換法による基数ソート(MSD Radix Sort)
⑧ イントロソート(Intro Sort)※GCC標準ソート
⑨ 適応型反復マージソート(Adaptive Merge Sort)※GCC標準安定ソート
⑩ シェルソート(Shell Sort)
⑪ バブルソート(Bubble Sort)
⑫ シェーカーソート(Cocktail sort / Shaker Sort)
⑬ ノームソート(Gnome Sort)
⑭ バイトニックソート(Bitonic Sort)
⑮ ボゴソート(Bogo Sort / Random sort / Monkey Sort)

全部を解説できるわけではないけど、まず全部の中から1番ちいさいものを見つけて、次に2番目に小さいものを……というふうに並べ替えたり、最初に群れを適当に何分割かしてから探したり、基準になるモノよりデカイのとちいさいので分けていったり。ただならべかえるってだけでも、手段はひとつじゃなくて、いろんな方法があるんだね。

15番目、最後のボゴソートっていうのは、ぜんぶのモノを毎回適当にグチャグチャにシャッフルして偶然ピッタリ揃うのを待つっていうアルゴリズムで、まったく実用性はないんだけど、音をつけるとなんだかカワイイ!

以下は主要なソートアルゴリズム速度を一覧で可視化、比較できるGIF。

aM8rEbI

via : Sorting Algorithm Animations

誤解なきよう僕の性癖を説明しておくと、いわゆる潔癖症とはかけ離れていて、シリーズ物の本がバラバラに並んでいようと、靴下が裏返しだろうと、食べ物が少々腐っていようと平気なタチなんだけど、お買い物で財布の中の小銭ピッタリで支払えた時に至福を感じるタイプだよ。

本気の意味でコンピュータ的なソートアルゴリズムについて深く知りたいお友達は、ごめんなさい。ここはただの新進気鋭のガレージファンクバンドのホームページなので、情報は以上です。適当にググっておいたから、ゆるしてね。

ソートの可視化 sorting

近年発見された意外なソート 4chan – Genius sorting algorithm: Sleep sort

日本語でソートの基礎を学ぶ いろいろなソートアルゴリズム

%d人のブロガーが「いいね」をつけました。