seegongsik
アルゴリズム

ソート わかりやすく

背の順に並んだことがあるでしょう。並べ替えとは、ばらばらなものを順番に並べることです。秘訣は単純で、隣の人と背を比べて高いほうを後ろへ送る。これを繰り返せば、列がそろいます。

01

並べ替えとは

背の順に並んでと言うと、最初はみんなばらばらです。
並べ替えとは、これを小さいものから大きいものへ順番に並べることです。
下で、ばらばらの様子と並んだ様子を比べられます。

3
1
4
2
5
背の高さがばらばらに混ざっています。これを順番に並べるのが並べ替えです。

ばらばら vs 並んだ様子。ばらばら → 小さいものから大きいものへ。

並んだ様子は見た目にもきれいです。
でももっと大事なのは、順番があれば、あとで探しやすいということです。
辞書が五十音順なので、ほしい言葉をすぐに見つけられるのと同じです。

02

隣の人と背比べ

では、どうやって並べるのでしょうか。
秘訣はとても単純です。隣り合う二つを見て、左のほうが大きければ入れ替えます。
小さいほうを前へ、大きいほうを後ろへ。この一つの動きがすべてです。

3
1
4
2
5
二つの棒を比べます。左が大きければ入れ替えて、大きいほうが後ろへ行きます。

左が大きければ入れ替えます。二つを比べる → 大きいほうが後ろへ。

比べるのは、いつも二つだけです。
一度に二つずつ、大きければ入れ替え、小さければそのまま。
難しいことは考えず、この単純な動きをひたすら繰り返すのです。

03

大きいものが後ろへ行く

いよいよ本当に並べてみます。
左から隣どうしを比べ、大きいほうを後ろへ押していきます。一周すると、いちばん大きいものがいちばん後ろに収まります。
これを繰り返せば、列が少しずつそろいます。
「並べ替え開始」を押すと、その様子が見られます。

3
1
4
2
5
黄色は比べている途中、赤は入れ替えている途中、緑は収まったところです。

比べて入れ替えるのを繰り返します。黄色=比べている · 赤=入れ替えている · 緑=収まった。

大きな棒が、泡のように後ろへ浮かび上がっていくのが見えます。
一周ごとに一つずつ、自分の場所を見つけていきます。
単純な比較と入れ替えが積み重なって、きちんとした列ができるのです。

04

なぜ最後にはそろうのか

一周するたびに、いちばん大きいものが後ろに収まります。
二周目で二番目に大きいものが、三周目で三番目が収まります。
こうして一歩ごとに一つずつ後ろから埋まっていくので、歩みを重ねれば、いつか全部そろうのです。

3
1
4
2
5
まだ始める前です
一歩(一周)ごとに緑が一つ増えます。後ろから列がそろっていきます。

「もう一歩」を押すたびに一つずつ収まり、歩みを重ねると列が完成します。

だから並べ替えは信頼できます。
どんなにばらばらでも、歩みを重ねれば必ず列がそろいます。
遅くても速くても、順番を守れば、終わり方は決まっているのです。

05

並べるとよいこと

並べ替えは、あちこちにあります。
点数で順位をつけ、名前を五十音順に並べ、商品を値段順に見せる。
何より、列がそろっていれば、探すのがずっと楽になります。それは少し先に続く話です。

並べ替え = 順番に並べる
隣どうしを比べて · 大きいものは後ろへ · 繰り返せば列がそろう。
探索
ほしいものを見つける
順位
点数·値段で並べる
その先
もっと速い並べ替え
次のレッスンではもっと速く並べる方法を、その次に並んだものからほしいものを素早く見つける「探索」を扱います。

並べたら、次へ。並べ替え = 順番に並べる → 探索 · 順位 · その先。

並べることはそれ自体でも役に立ちますが、その次のための準備でもあります。
整えておけば、探すのも選ぶのも楽になります。
順番の力は、思っているより大きいのです。

一言でいうと並べ替えとは、ばらばらなものを順番に並べることです。隣どうしを比べて大きいものを後ろへ送るのを繰り返せば、列が少しずつそろいます。一歩ごとに一つずつ自分の場所を見つけるので、どんなにばらばらでも最後には列がそろい、整えておけば探すのも楽になります。
← アルゴリズム
このページがお役に立ったなら支援する