markdown
ハッシュの基本
lecture/information/algorithm/data-structures/ハッシュの基本-講義.n.md

ハッシュの基本きほん

date2026-03-27descriptionハッシュを、値そのものを探すのでなく置き場所を素早く決める仕組みとして整理し、平均的に高速な探索がなぜ可能かを説明します。prerequisites計算量の基本 / データ構造ポータル / 配列の基本操作type講義statusactiverelateddata/lecture/information/algorithm/data-structures/データ構造ポータル-講義.n.md / data/lecture/information/algorithm/search/線形探索-講義.n.md
algorithmdata-structuresundergraduatelecture

導入どうにゅう

この講義こうぎ最重要さいじゅうようなのは、ハッシュを「全体ぜんたい順番じゅんばんさがす」のでなく、「あたいから場所ばしょ素早すばやめる」仕組しくみとしてることです。

探索たんさくおそくなりやすいのは、候補こうほを 1 つずつることです。ハッシュでは、あたいから添字そえじのような場所ばしょ計算けいさんして、候補こうほ最初さいしょからしぼります。

用語ようご定義ていぎ

ハッシュHash とは、あたい一定範囲いっていはんい整数せいすううつ関数かんすうです。

衝突しょうとつCollision とは、ことなる 2 つのあたいおなじハッシュになることです。

方針ほうしん

まず「どこにくか」をハッシュめます。そのあと、衝突しょうとつしたときにどう処理しょりするかをかんがえます。

直感的ちょっかんてき説明せつめい

図書館としょかんほん名前順なまえじゅんに 1 さつずつさがすより、分類番号ぶんるいばんごうたなさきしぼれたほうがはやいです。ハッシュもそれとていて、あたいから「まずるべき場所ばしょ」をめます。

厳密げんみつ説明せつめい

1. ハッシュひょう

配列はいれつ添字そえじ使つかってあたい管理かんりするのがハッシュひょうです。あたい xたいしてハッシュ関数かんすう h(x)計算けいさんし、その場所ばしょ調しらべます。

2. 衝突しょうとつ

ことなるあたいでもおな場所ばしょおくられることがあります。これが衝突しょうとつです。したがって、ハッシュは「1 かいかならつかる」のでなく、「平均的へいきんてき候補こうほすくなくできる」仕組しくみです。

3. 計算量けいさんりょう

平均的へいきんてきには探索たんさく追加ついか削除さくじょO(1)ちかいですが、衝突しょうとつおおいとおそくなります。だからハッシュ関数かんすうひょうおおきさの設計せっけい重要じゅうようです。

見分みわかた

  • 順序じゅんじょ不要ふようで、「あるあたいがあるか」をはやりたいならハッシュをうたがいます。
  • 大小関係だいしょうかんけい必要ひつようなら、ハッシュよりやソートのほうがくことがあります。

最終形さいしゅうけい

[PARSE ERROR: Undefined("Command(\"boxed\")")]hash[PARSE ERROR: Undefined("RBrace")]

一言ひとことでいうと

  • ハッシュは、全探索ぜんたんさくけて「まずどこをるか」をめるためのデータ構造こうぞうです。
raw .n.md をコピー
loc をコピー (filepath:line ~ line)
copy share link
path をコピー
copy share link
copy share link
タブを全て閉じる