seegongsik
単語帳
アルゴリズム

ほしいものを はやく さがす

じしょで ことばを さがす とき、さいしょから 一まいずつ めくりませんよね。まん中を ひらいて「まえか うしろか」きめます。列が そろって いれば、半分ずつ きって ずっと はやく さがせます。

01

さいしょから じゅんに

さがす いちばん かんたんな ほうほうは
さいしょから 一つずつ 見る ことです。
「これか? ちがう。
つぎは? ちがう。」
あう まで
めくりつづけます。
たしかですが、
うしろに あると
時間が かかります。

2
5
8
11
13
17
21
25
まえから 一ますずつ かくにんします。さがす あたいが うしろに あるほど 時間が かかります。

まえから 一つずつ。(さがす あたい 13 · まえから 一ますずつ かくにん)

ますが いくつか なら
だいじょうぶ。
でも 何千、何万こ なら?
一つずつ 見ては
だいぶ かかります。
もっと いい ほうほうが あります。
列が そろった ときに つかう
かしこい ほうほうです。

02

まん中を ひらいてみる

列が そろって いれば
こう します。
まん中を ひらいて 見ます。
さがす あたいが それより 大きければ
まえの 半分は すてます。
小さければ うしろの 半分を すてて。
一ど 見る ごとに
半分が きえます。

2
5
8
11
13
17
21
25
まん中の あたいと くらべて、さがす あたいが ない 半分を まるごと すてます。

まん中を 見て 半分を すてます。(さがす あたい 13 · ない 半分を まるごと すてる)

一どに 半分を すてるから、
のこりが ぐっと へります。
8ますが 4ます、
4ますが 2ます、
2ますが 1ます。
すうかいで
ぴったり 一ますに しぼれます。

03

一つずつ vs 半分ずつ

二つを ならべて
同じ あたいを さがしましょう。
一つずつは
うしろの あたいまで
なんども 見る ひつようが あります。
半分ずつは
すうかいで おわります。
同じ こたえなのに
あしの かずが ぜんぜん ちがいます。

一つずつおそい
2
5
8
11
13
17
21
25
半分ずつはやい
2
5
8
11
13
17
21
25
半分ずつ きると ずっと 少ない あしで 同じ あたいを 見つけます。

同じ あたい(13)を さがす、あしの かず くらべ。(一つずつ = おそい · 半分ずつ = はやい)

ますが ふえるほど
さが もっと ひらきます。
千こを 一つずつなら
さいだい 千かい、
半分ずつなら 十かいで すみます。
この さは
大きな データでは
とほうも ありません。

04

なぜ ならべかえが さきか

半分ずつ きるには
じょうけんが 一つ あります。
列が そろって いる ことです。
ならんで いてこそ
「まん中より 大きければ まえは すてて いい」が
なりたつから。
ばらばらだと
半分を すてられません。

2
5
8
11
13
17
21
25
列が そろって います。まん中を きじゅんに 半分を すてられます。
ぜんかいの ならべかえで 列を そろえた ことが、ここで はやい さがしに つながります。

ならんだ ときだけ 半分ずつが つうじます。(列 そろう → なりたつ · ばらばら → だめ)

だから ならべかえと さがしは
あいぼうです。
一ど 列を そろえて おけば、
そのあと さがしが
ずっと はやく なるから。
ととのえる てまが
のちのち むくわれるのです。

05

ここまで きました

さがしは いつも そばに あります。
じしょ、でんわちょう、
けんさくまどに うった 一ことば。
その うしろで
「半分ずつ きる」ような ほうほうが
はやく こたえを 見つけます。
じゅんばん、ならべかえ、さがしまで
いま 一すじに つながりました。

さがし = ほしいものを はやく つまみだす
一つずつは おそい · そろえば 半分ずつ · ずっと はやく。
じゅんばん
きまった だんかい
ならべかえ
列を つくる
さがし
はやく つまむ
アルゴリズムの きほんの 三あしを ふみました。つぎの りょういきで もっと ふかく すすみます。

じゅんばん → ならべかえ → さがし、ここまで。(さがし = ほしいものを はやく つまみだす)

アルゴリズムが
たいそうな ものでは ないと
もう わかるでしょう。
じゅんばんを きめ、
ととのえ、
かしこく さがす こと。
小さな ちえが あつまって
大きな ことを なしとげるのです。

一言でいうとさがしは ほしいものを つまみだす ことです。一つずつ 見ると おそいですが、列が そろって いれば 半分ずつ きって ずっと はやく さがせます。半分ずつ きるのは ならんで いる ときだけ つうじます。だから ならべかえと さがしは あいぼうです。一ど 列を そろえれば のちのち はやく なります。
このページがお役に立ったなら寄付する
アルゴリズム