SlideShare una empresa de Scribd logo
1 de 27
Introduction To Algorithms.§11. Hash Tables. 2010 / 06
Why Hash Tables ? ,[object Object]
先頭にあれば… O(1)
末尾にあれば… O(N)
いつもO(1)ぐらいだったら嬉しい,[object Object]
Key と Value の 組合せ
(Key, Value) で 表に格納する
同じKeyだったらどうしよう,[object Object]
出来れば高速で計算して…
F : Data -> { 0, 1, 2, … , M-1 },[object Object]
Example. ,[object Object]
同じ日の人って…そんなにいないはず
M = 7 : 素数
経験的に素数を使う方がいいらしい
数字の総和 mod 7 を 関数に使う,[object Object]
Question. ,[object Object]
チェイン法/クローズドハッシュ法
どんなハッシュ関数がいいのか,[object Object]
チェイン法 ,[object Object],(78/11/4, C) (01/5/12, E) O(1) (87/2/1, B) (85/10/5, A) (68/8/4, C) O(長さ)
§11.2〜 ,[object Object]
一つのチェイン長は平均してn / m = α : 占有率
仮定:ハッシュ関数はすぐ計算出来る O(1)
そのまま挿入出来る or リストをたどる
O( 1 + α ),[object Object]
大前提2. 上手くばらける
Mod: 割り算だけなので高速
(再掲)経験的に素数を使う方がいいらしい,[object Object]

Más contenido relacionado

La actualidad más candente

アルゴリズムとデータ構造6
アルゴリズムとデータ構造6アルゴリズムとデータ構造6
アルゴリズムとデータ構造6Kenta Hattori
 
Rustで始める競技プログラミング
Rustで始める競技プログラミングRustで始める競技プログラミング
Rustで始める競技プログラミングNaoya Okanami
 
関数の最小値を求めることから機械学習へ
関数の最小値を求めることから機械学習へ関数の最小値を求めることから機械学習へ
関数の最小値を求めることから機械学習へHiro H.
 
アルゴリズム+データ構造勉強会(9)
アルゴリズム+データ構造勉強会(9)アルゴリズム+データ構造勉強会(9)
アルゴリズム+データ構造勉強会(9)noldor
 
programming camp 2008, introduction of programming, algorithm
programming camp 2008, introduction of programming, algorithmprogramming camp 2008, introduction of programming, algorithm
programming camp 2008, introduction of programming, algorithmHiro Yoshioka
 
Haskell勉強会 in ie
Haskell勉強会 in ieHaskell勉強会 in ie
Haskell勉強会 in iemaeken2010
 
圏論のモナドとHaskellのモナド
圏論のモナドとHaskellのモナド圏論のモナドとHaskellのモナド
圏論のモナドとHaskellのモナドYoshihiro Mizoguchi
 
Python勉強会3-コレクションとファイル
Python勉強会3-コレクションとファイルPython勉強会3-コレクションとファイル
Python勉強会3-コレクションとファイル理 小林
 
圏論とHaskellは仲良し
圏論とHaskellは仲良し圏論とHaskellは仲良し
圏論とHaskellは仲良しohmori
 
自動定理証明の紹介
自動定理証明の紹介自動定理証明の紹介
自動定理証明の紹介Masahiro Sakai
 
代数的実数とCADの実装紹介
代数的実数とCADの実装紹介代数的実数とCADの実装紹介
代数的実数とCADの実装紹介Masahiro Sakai
 
mathemaical_notation
mathemaical_notationmathemaical_notation
mathemaical_notationKenta Oono
 

La actualidad más candente (13)

アルゴリズムとデータ構造6
アルゴリズムとデータ構造6アルゴリズムとデータ構造6
アルゴリズムとデータ構造6
 
Rustで始める競技プログラミング
Rustで始める競技プログラミングRustで始める競技プログラミング
Rustで始める競技プログラミング
 
関数の最小値を求めることから機械学習へ
関数の最小値を求めることから機械学習へ関数の最小値を求めることから機械学習へ
関数の最小値を求めることから機械学習へ
 
アルゴリズム+データ構造勉強会(9)
アルゴリズム+データ構造勉強会(9)アルゴリズム+データ構造勉強会(9)
アルゴリズム+データ構造勉強会(9)
 
programming camp 2008, introduction of programming, algorithm
programming camp 2008, introduction of programming, algorithmprogramming camp 2008, introduction of programming, algorithm
programming camp 2008, introduction of programming, algorithm
 
圏とHaskellの型
圏とHaskellの型圏とHaskellの型
圏とHaskellの型
 
Haskell勉強会 in ie
Haskell勉強会 in ieHaskell勉強会 in ie
Haskell勉強会 in ie
 
圏論のモナドとHaskellのモナド
圏論のモナドとHaskellのモナド圏論のモナドとHaskellのモナド
圏論のモナドとHaskellのモナド
 
Python勉強会3-コレクションとファイル
Python勉強会3-コレクションとファイルPython勉強会3-コレクションとファイル
Python勉強会3-コレクションとファイル
 
圏論とHaskellは仲良し
圏論とHaskellは仲良し圏論とHaskellは仲良し
圏論とHaskellは仲良し
 
自動定理証明の紹介
自動定理証明の紹介自動定理証明の紹介
自動定理証明の紹介
 
代数的実数とCADの実装紹介
代数的実数とCADの実装紹介代数的実数とCADの実装紹介
代数的実数とCADの実装紹介
 
mathemaical_notation
mathemaical_notationmathemaical_notation
mathemaical_notation
 

Destacado

Presentation missouri
Presentation missouriPresentation missouri
Presentation missourifeoropeza
 
õPpeinfosüSteemi üHildamine E õPpe Keskkondadega üHe üLikooli õI Si NäItel
õPpeinfosüSteemi üHildamine E õPpe Keskkondadega üHe üLikooli õI Si NäItelõPpeinfosüSteemi üHildamine E õPpe Keskkondadega üHe üLikooli õI Si NäItel
õPpeinfosüSteemi üHildamine E õPpe Keskkondadega üHe üLikooli õI Si NäItelMaret Mõis
 
Grayling foreign-investment-think-piece june-2011
Grayling foreign-investment-think-piece june-2011Grayling foreign-investment-think-piece june-2011
Grayling foreign-investment-think-piece june-2011Pavel Melnikov
 
Tenth Draft Dr. Cotter
Tenth Draft Dr. CotterTenth Draft Dr. Cotter
Tenth Draft Dr. Cotterfeoropeza
 
El costo de la anticipación
El costo de la anticipaciónEl costo de la anticipación
El costo de la anticipaciónUNAH CUROC
 
Direccion escolar efectiva_elsalvador
Direccion escolar efectiva_elsalvadorDireccion escolar efectiva_elsalvador
Direccion escolar efectiva_elsalvadorI GARITA
 
Foilsを使ってみた。
Foilsを使ってみた。Foilsを使ってみた。
Foilsを使ってみた。Keisuke OTAKI
 
Perkembangan asuransi syariah di indonesia 2012
Perkembangan asuransi syariah di indonesia 2012Perkembangan asuransi syariah di indonesia 2012
Perkembangan asuransi syariah di indonesia 2012Wiku Suryomurti
 
Coworking Europe 2012 París
Coworking Europe 2012 ParísCoworking Europe 2012 París
Coworking Europe 2012 ParísWorking Space
 
What is art?
What is art?What is art?
What is art?mertxita
 
Think piece pharma 2020 june 2010
Think piece pharma 2020 june 2010Think piece pharma 2020 june 2010
Think piece pharma 2020 june 2010Pavel Melnikov
 
Presentation
PresentationPresentation
Presentations1170006
 
Presentation
PresentationPresentation
Presentations1170006
 
Natalia Zubarevich - Russian regions - September 2014
Natalia Zubarevich - Russian regions - September 2014Natalia Zubarevich - Russian regions - September 2014
Natalia Zubarevich - Russian regions - September 2014Pavel Melnikov
 

Destacado (20)

Presentation missouri
Presentation missouriPresentation missouri
Presentation missouri
 
õPpeinfosüSteemi üHildamine E õPpe Keskkondadega üHe üLikooli õI Si NäItel
õPpeinfosüSteemi üHildamine E õPpe Keskkondadega üHe üLikooli õI Si NäItelõPpeinfosüSteemi üHildamine E õPpe Keskkondadega üHe üLikooli õI Si NäItel
õPpeinfosüSteemi üHildamine E õPpe Keskkondadega üHe üLikooli õI Si NäItel
 
Grayling foreign-investment-think-piece june-2011
Grayling foreign-investment-think-piece june-2011Grayling foreign-investment-think-piece june-2011
Grayling foreign-investment-think-piece june-2011
 
Tenth Draft Dr. Cotter
Tenth Draft Dr. CotterTenth Draft Dr. Cotter
Tenth Draft Dr. Cotter
 
El costo de la anticipación
El costo de la anticipaciónEl costo de la anticipación
El costo de la anticipación
 
Direccion escolar efectiva_elsalvador
Direccion escolar efectiva_elsalvadorDireccion escolar efectiva_elsalvador
Direccion escolar efectiva_elsalvador
 
Meraviglioso
MeravigliosoMeraviglioso
Meraviglioso
 
Virtual team tools
Virtual team toolsVirtual team tools
Virtual team tools
 
Firewall corewp
Firewall corewpFirewall corewp
Firewall corewp
 
Foilsを使ってみた。
Foilsを使ってみた。Foilsを使ってみた。
Foilsを使ってみた。
 
Perkembangan asuransi syariah di indonesia 2012
Perkembangan asuransi syariah di indonesia 2012Perkembangan asuransi syariah di indonesia 2012
Perkembangan asuransi syariah di indonesia 2012
 
Pingüí
PingüíPingüí
Pingüí
 
Social Media Basics
Social Media BasicsSocial Media Basics
Social Media Basics
 
Coworking Europe 2012 París
Coworking Europe 2012 ParísCoworking Europe 2012 París
Coworking Europe 2012 París
 
What is art?
What is art?What is art?
What is art?
 
Think piece pharma 2020 june 2010
Think piece pharma 2020 june 2010Think piece pharma 2020 june 2010
Think piece pharma 2020 june 2010
 
Presentation
PresentationPresentation
Presentation
 
Presentation
PresentationPresentation
Presentation
 
Em
EmEm
Em
 
Natalia Zubarevich - Russian regions - September 2014
Natalia Zubarevich - Russian regions - September 2014Natalia Zubarevich - Russian regions - September 2014
Natalia Zubarevich - Russian regions - September 2014
 

Más de Keisuke OTAKI

KDD読み会(図なし版)
KDD読み会(図なし版)KDD読み会(図なし版)
KDD読み会(図なし版)Keisuke OTAKI
 
Reading Seminar (140515) Spectral Learning of L-PCFGs
Reading Seminar (140515) Spectral Learning of L-PCFGsReading Seminar (140515) Spectral Learning of L-PCFGs
Reading Seminar (140515) Spectral Learning of L-PCFGsKeisuke OTAKI
 
一階述語論理のメモ
一階述語論理のメモ一階述語論理のメモ
一階述語論理のメモKeisuke OTAKI
 
Grammatical inference メモ 1
Grammatical inference メモ 1Grammatical inference メモ 1
Grammatical inference メモ 1Keisuke OTAKI
 
ベイジアンネットワーク入門
ベイジアンネットワーク入門ベイジアンネットワーク入門
ベイジアンネットワーク入門Keisuke OTAKI
 
Tensor Decomposition and its Applications
Tensor Decomposition and its ApplicationsTensor Decomposition and its Applications
Tensor Decomposition and its ApplicationsKeisuke OTAKI
 
PRML§12-連続潜在変数
PRML§12-連続潜在変数PRML§12-連続潜在変数
PRML§12-連続潜在変数Keisuke OTAKI
 
ウェーブレット勉強会
ウェーブレット勉強会ウェーブレット勉強会
ウェーブレット勉強会Keisuke OTAKI
 
Sec16 greedy algorithm no2
Sec16 greedy algorithm no2Sec16 greedy algorithm no2
Sec16 greedy algorithm no2Keisuke OTAKI
 
Sec16 greedy algorithm no1
Sec16 greedy algorithm no1Sec16 greedy algorithm no1
Sec16 greedy algorithm no1Keisuke OTAKI
 
Sec15 dynamic programming
Sec15 dynamic programmingSec15 dynamic programming
Sec15 dynamic programmingKeisuke OTAKI
 

Más de Keisuke OTAKI (14)

KDD読み会(図なし版)
KDD読み会(図なし版)KDD読み会(図なし版)
KDD読み会(図なし版)
 
Reading Seminar (140515) Spectral Learning of L-PCFGs
Reading Seminar (140515) Spectral Learning of L-PCFGsReading Seminar (140515) Spectral Learning of L-PCFGs
Reading Seminar (140515) Spectral Learning of L-PCFGs
 
一階述語論理のメモ
一階述語論理のメモ一階述語論理のメモ
一階述語論理のメモ
 
Grammatical inference メモ 1
Grammatical inference メモ 1Grammatical inference メモ 1
Grammatical inference メモ 1
 
ベイジアンネットワーク入門
ベイジアンネットワーク入門ベイジアンネットワーク入門
ベイジアンネットワーク入門
 
Tensor Decomposition and its Applications
Tensor Decomposition and its ApplicationsTensor Decomposition and its Applications
Tensor Decomposition and its Applications
 
Ada boost
Ada boostAda boost
Ada boost
 
PRML§12-連続潜在変数
PRML§12-連続潜在変数PRML§12-連続潜在変数
PRML§12-連続潜在変数
 
Prml sec6
Prml sec6Prml sec6
Prml sec6
 
ウェーブレット勉強会
ウェーブレット勉強会ウェーブレット勉強会
ウェーブレット勉強会
 
Prml sec3
Prml sec3Prml sec3
Prml sec3
 
Sec16 greedy algorithm no2
Sec16 greedy algorithm no2Sec16 greedy algorithm no2
Sec16 greedy algorithm no2
 
Sec16 greedy algorithm no1
Sec16 greedy algorithm no1Sec16 greedy algorithm no1
Sec16 greedy algorithm no1
 
Sec15 dynamic programming
Sec15 dynamic programmingSec15 dynamic programming
Sec15 dynamic programming
 

Último

スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムsugiuralab
 
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...Toru Tamaki
 
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Yuma Ohgami
 
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものですiPride Co., Ltd.
 
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A surveyToru Tamaki
 
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNetToru Tamaki
 
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdfTSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdftaisei2219
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略Ryo Sasaki
 
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By DanielPostman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Danieldanielhu54
 

Último (9)

スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
 
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
 
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
 
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものです
 
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey
 
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet
 
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdfTSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdf
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
 
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By DanielPostman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Daniel
 

Hash Table