夕蛙のなく頃にスマートフォン用の表示で見る夕蛙のなく頃にデータアナリストとして学んだことや趣味で勉強し始めたIoTをアウトプットする2019-07-18OpenDataStructures第5章を自分用にまとめる(ハッシュテーブル)データサイエンスなにこれChainedHashTable乗算ハッシュ法LinearHashTableなにこれ前回の続きblog.frogdusk.comハッシュテーブルを用いてUSetインターフェースを実装します。USetインターフェースは順序付けられていない値の集合です。Setインターフェースで重要なのは、ある値がすでに保持されているかを確認するfindですが、簡単に言うと、ある値を格納する場所は一意に決まっているので、その場所さえ確認すればfindできるよという実装です。ChainedHashTableLinearHashTableChainedHashTableArrayStackを格納した配列を考えます。ある値を格納する一意な場所(index)に値を追加していきます。ある値が格納されているかは、1ヶ所だけ確認すればよいので、add・remove・findの期待実行時間はO(1)です。重要なのは格納する場所を一意に決めるハッシュ関数です。本の以下の流れがわかりやすいです。d=8、すなわち28以下のランダムな値に変換する必要があります。28以下の値になるLinearHashTableわざわざArrayStackを配列にせず、そのままの配列を使います。ハッシュ値が衝突したら、次のindexを見に行き、nullなものが見つかったらfindを終了したり、新しくaddします。JavaScriptを使ったサイトをスクレイピングする月別アーカイブはてなブログをはじめよう!frogduskさんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。