ハッシュテーブル

ハッシュテーブルの例(名前をキーとして電話番号を検索)

ハッシュテーブル (: hash table) は、キーと値の組(エントリと呼ぶ)を複数個格納し、キーに対応する値をすばやく参照するためのデータ構造ハッシュ表ともいう。ハッシュテーブルは連想配列集合の効率的な実装のうち1つである。

概要

ハッシュテーブルはキーをもとに生成されたハッシュ値を添え字とした配列である。通常、配列の添え字には非負整数しか扱えない。そこで、キーを要約する値であるハッシュ値を添え字として値を管理することで、検索や追加を要素数によらず定数時間O(1)で実現する。しかしハッシュ関数の選び方(例えば、異なるキーから頻繁に同じハッシュ値が生成される場合)によっては、性能が劣化して最悪の場合O(n)となってしまう。

衝突処理

複数の異なるキーが同じハッシュ値になることを衝突 (collision) と呼ぶ。キーの分布が予めわからない場合、衝突を避けることはできない。同じハッシュ値となるキーを同族キーと呼ぶ。衝突が発生したときの対処の方法は、開番地法と連鎖法に大別される。

連鎖法

衝突を起こしたキー同士をポインタでつなぐ方式を連鎖法と呼ぶ。テーブルの各番地にはキーそのものではなく、同族キーを保持するリンクリストを格納する。

開番地法

衝突が発生した際、テーブル中の空いている別の番地を探す方式を開番地法と呼ぶ。その方法としてハッシュ関数とは別の関数を用いて次の候補となる番地を求める。別の番地を探す関数は繰り返し適用することによってテーブル内の全ての番地を走査できるように選ぶ。

実装方法

連鎖法の一つの実装例を示す。まず、ルート配列と呼ばれる要素数 N配列を一つ用意する。ルート配列の各要素は、リスト(便宜上エントリリストと呼ぶ)とする。エントリリストには、少数のエントリを格納する。

エントリを格納する場合、エントリのキーをもとにハッシュ関数を用いてハッシュ値を生成する。ハッシュ関数は 0 から N - 1 までの整数値を生成するものであって、一様な分布と高速な計算が要求される。ハッシュ値を i とするとき、ルート配列上の i 番目のエントリリストにこのエントリを格納する。衝突が発生したとき、それらのエントリは同一のエントリリストに格納される。

あるキーをもつエントリを検索する場合、そのキーからハッシュ値を生成する。ハッシュ値を j とするとき、ルート配列上の j 番目のエントリリストに入っているエントリを一つずつ検索し、キーが一致しているものを取り出す。ルート配列上のエントリリストが高速でアクセスできる必要がある。

ハッシュテーブルの自動拡張

ハッシュテーブルはエントリの数が配列のサイズに近づくほど衝突の確率が高くなり、性能が悪化してしまう。この比率をload factor(座席利用率)と呼び、n/Nの形で表す。nはエントリの数、Nは配列のサイズを指す。

連鎖法の場合はload factorの増加に対して線形に性能が悪化する。しかし開番地法の場合は衝突したキーが配列の空いた番地に格納されるため、load factorが0.8を超える付近で性能が急激に悪化する。

この問題を回避するため、load factorが一定を超えた場合に、より大きいサイズのハッシュテーブルを用意して格納し直す操作が必要となる。これをリハッシュ (rehash) と呼ぶ。この操作はすべての要素のハッシュ値を再計算して新たなハッシュテーブルに格納するためO(n)であるが、配列のサイズを指数的に拡張する事で、動的配列の末尾追加操作と同様に償却解析によって計算量をO(1)とみなす事ができる。

より単純な回避方法として、あらかじめ想定されるエントリの数に対して十分に大きなサイズの配列を用意する方法もあるが、エントリの数を事前に想定できない場合には適用できない。

全要素の列挙

順序保証のない列挙

最も単純な実装として、ハッシュテーブルのルート配列上を 0 から N - 1 まで走査し、その中に存在するエントリを列挙する方法がある。連鎖法の場合は見つかったエントリリストをさらにたどる必要がある。しかしこの方法で列挙した場合、各エントリはハッシュ関数によって格納位置を決められているために、全く意味を持たない順序で要素が列挙される。これはランダムな順序という意味ではない。利用方法によっては列挙操作が追加した順序を保持しているかのように見えるため、ハッシュテーブルの利用者が誤解する場合がある。この実装による列挙の計算量はルート配列のサイズ N と連鎖法でのルート配列上にないエントリリストの数 m との合計O(N + m)となる。そのため、ルート配列をあらかじめ大きなサイズで確保しているとこの実装での列挙に時間がかかる。

追加した順序での列挙

追加した順序で要素を列挙する実装方法として、各エントリに追加順を保持するリンクリストのポインタを別に持たせ、列挙する際はそちらのポインタをたどる方法がある。検索・追加操作のみならば単方向リストで実現可能だが、削除操作もサポートする場合は双方向リストで実装しなければO(1)での操作を実現できない。JavaのLinkedHashMapはこの実装であり、その他言語でも利便性からハッシュテーブルが標準で追加順を保証している事がある。欠点として、各エントリに別のリンクリスト用ポインタが必要なためにメモリ消費量が増加する。

プログラミング言語におけるハッシュテーブルの実装

脚注

関連項目

Read other articles:

Emanuel Cleaver Emanuel Cleaver II (lahir 26 Oktober 1944) adalah seorang pastor Methodis dan politikus Amerika Serikat yang menjadi anggota DPR. Cleaver terpilih pada 2005. Cleaver adalah seorang anggota Partai Demokrat. Pranala luar Wikimedia Commons memiliki media mengenai Emanuel Cleaver. Congressman Emanuel Cleaver II official U.S. House website Emanuel Cleaver for Congress Emanuel Cleaver di Curlie (dari DMOZ) Biografi di Biographical Directory of the United States Congress Catatan suar...

 

 

WannabeSingel oleh Spice Girlsdari album SpiceSisi-BBumper to BumperDirilis26 Juni 1996 (1996-06-26)Format12kasetCDDirekamDesember 1995StudioStrongroom, LondonGenreDance-popDurasi2:52LabelVirginPenciptaSpice GirlsMatt RoweRichard StannardProduserMatt RoweRichard StannardKronologi singel Spice Girls Wannabe (1996) Say You'll Be There (1996) Video musikWannabe di YouTube Wannabe adalah singel debut oleh grup musik wanita Inggris Spice Girls. Ditulis dan disusun oleh anggota grup bekerja sa...

 

 

XF15C Role FighterType of aircraft National origin United States Manufacturer Curtiss Aeroplane and Motor Company First flight 27 February 1945 Number built 3 The Curtiss XF15C-1 is a mixed-propulsion fighter prototype of the 1940s. It was among a number of similar designs ordered by the US Navy before pure-jet aircraft had demonstrated their ability to operate from carriers and the mixed-propulsion designs were abandoned. Only three prototypes were constructed, the first one having crashed ...

Ini adalah nama Korea; marganya adalah Kwon. G-DragonG-Dragon pada 2015.Nama asal권지용LahirKwon Ji-yong18 Agustus 1988 (umur 35) Seoul, Korea SelatanNama lainGDPekerjaan Penyanyi Penulis lagu Penyanyi rap Produser rekaman Peragawan Karier musikGenre Hip-hop Pop Korea Instrumen Vokal Piano Gitar Beatbox Tahun aktif2001–sekarangLabel YG Entertainment Artis terkait Big Bang YG Family GD & TOP GD X Taeyang Situs webSitus web resmi Kwon Ji-yongHangul권지용 Hanja權志�...

 

 

Greek island in the eastern Aegean Sea For other uses, see Samos (disambiguation). Sisam redirects here. For other uses, see Sisam (disambiguation). Regional unit in North Aegean, GreeceSamos ΣάμοςRegional unitRegional unit of SamosΠεριφερειακή ενότητα Σάμου (Greek)Samos (town), capital of Samos SealSamos within the North AegeanCoordinates: 37°45′N 26°50′E / 37.750°N 26.833°E / 37.750; 26.833Country GreeceRegionNorth Aegea...

 

 

ХристианствоБиблия Ветхий Завет Новый Завет Евангелие Десять заповедей Нагорная проповедь Апокрифы Бог, Троица Бог Отец Иисус Христос Святой Дух История христианства Апостолы Хронология христианства Раннее христианство Гностическое христианство Вселенские соборы Н...

Kate Atkinson Kate Atkinson (York, 20 dicembre 1951) è una scrittrice britannica, vincitrice di 3 Costa Book Awards (1995, 2013 e 2015[1]), che attualmente vive ad Edimburgo. Indice 1 Biografia 2 Elenco delle opere 2.1 Jackson Brodie 3 Onorificenze 4 Note 5 Altri progetti 6 Collegamenti esterni Biografia Studentessa di Letteratura britannica presso la University of Dundee (Scozia), ha ricevuto la laurea magistrale nel 1974. Dopo essersi sposata, ha avuto il primo figlio, Eve, nel 197...

 

 

Crater created by the Sedan shallow underground nuclear test explosion A flooded crater produced by the 2020 Beirut explosion. In a large explosion like this, the energy may not only cause destruction like that shown in the picture, but eject large amounts of material from the ground, creating a hole in the earth. An explosion crater is a type of crater formed when material is ejected from the surface of the ground by an explosion at or immediately above or below the surface. Stylised cross-s...

 

 

Independent research institution Institute for Palestine StudiesInstitute for Palestine StudiesAbbreviationIPSFormation1963TypeResearch InstituteHeadquartersAnis Nsouli Street, VerdunLocationBeirutWebsitepalestine-studies.org The Institute for Palestine Studies (IPS) is the oldest[1] independent nonprofit public service research institute in the Arab world. It was established and incorporated in Beirut, Lebanon, in 1963[2] and has since served as a model for other such institu...

Isle of Man Tourist Trophy beralih ke halaman ini. Untuk serangkaian balapan mobil yang diadakan di Pulau Man antara tahun 1905 dan 1922, lihat RAC Tourist Trophy. Ada usul agar 2001 Isle of Man TT dan 2020 Isle of Man TT digabungkan ke artikel ini. (Diskusikan) Diusulkan sejak June 2020. Isle of Man Tourist Trophy Wilayah Isle of Man Jalur Snaefell Mountain Course Tipe Kursus jalan umum Panitera Kursus Gary Thompson MBE BEM Penyelenggara Acara ACU Events Ltd Sponsor utama Isle of Man Departm...

 

 

「離島」、「飛地」、あるいは「自治州」とは異なります。 海外領土・自治領の一覧(かいがいりょうど・じちりょうのいちらん)は、世界に存在する「独立国家以外の地域」の一覧である。 海外領土・自治領を示した世界地図       豪       智       丁       仏     ...

 

 

County in Oklahoma, United States Not to be confused with Delaware, Oklahoma. County in OklahomaDelaware CountyCountyDelaware County CourthouseLocation within the U.S. state of OklahomaOklahoma's location within the U.S.Coordinates: 36°25′N 94°48′W / 36.41°N 94.8°W / 36.41; -94.8Country United StatesState OklahomaFounded1907Named forDelaware IndiansSeatJayLargest cityGroveArea • Total792 sq mi (2,050 km2) • Land7...

ملعب رويال بافوكينغمعلومات عامةالمنطقة الإدارية Phokeng (en) البلد  جنوب إفريقيا التشييد والافتتاحالافتتاح 1999الافتتاح الرسمي 1999 الاستعمالالرياضة كرة القدم المستضيف Platinum Stars وLeopardsالمالك Royal Bafokeng Nationأحداث مهمة كأس العالم 2010 معلومات أخرىالطاقة الاستيعابية 42,000الأرضية غضراء ...

 

 

International scientific society This article may rely excessively on sources too closely associated with the subject, potentially preventing the article from being verifiable and neutral. Please help improve it by replacing them with more appropriate citations to reliable, independent, third-party sources. (July 2020) (Learn how and when to remove this message) Association for the Advancement of Artificial IntelligenceLogo since 2023AbbreviationAAAIFormation1979; 45 years ago...

 

 

Questa voce sull'argomento calciatori rumeni è solo un abbozzo. Contribuisci a migliorarla secondo le convenzioni di Wikipedia. Segui i suggerimenti del progetto di riferimento. Andrei RațiuNazionalità Romania Altezza183 cm Calcio RuoloDifensore Squadra Rayo Vallecano CarrieraGiovanili Águaviva Andorra Villarreal Squadre di club1 2016-2018 Villarreal C65 (4)2018-2020 Villarreal B50 (1)[1]2019-2020 Villarreal0 (0)2020-2021→  ADO Den H...

Export lumber business, Bay Harbor, Florida, 1910s Bay Harbor is a ghost town in Bay County, Florida, United States. Overview Bay Harbor was a small settlement mostly centered on the paper mill that was here at the site. Bay Harbor is currently part of the Panama City Paper Mill.[1] See also List of ghost towns in Florida References ^ Bay Harbor - Ghost Town. www.ghosttowns.com. Retrieved March 22, 2016. vteMunicipalities and communities of Bay County, Florida, United StatesCounty se...

 

 

Muslim scholar, jurist, and theologian (780–855) Imam Ahmed redirects here. For the imam of Adal from 1527–1543, see Ahmad ibn Ibrahim al-Ghazi. ImamAhmad ibn Hanbalأَحْمَد بْن حَنْبَلTitleShaykh al-Islam ('Shaykh of Islam')PersonalBornNovember 780 CE (Rabi' al-Awwal 164 AH)[1]Baghdad, Abbasid Caliphate (modern-day Iraq)[2][3]Died2 August 855 CE (12 Rabi' al-Awwal 241 AH; aged 74–75)[1]Baghdad, Abbasid Caliphate (modern-day Iraq)[9 ...

 

 

Boxeaux Jeux olympiquesd'été de 2024 Généralités Sport Boxe Organisateur(s) CIO Édition 27e Lieu(x) Paris Date du 27 juillet au 10 août 2024 Participants 248 (parité hommes / femmes) Épreuves 13 Site(s) Arena Paris Nord[1]Stade Roland-Garros[2] Site web officiel Site officiel Navigation Tokyo 2020 Los Angeles 2028 modifier Les épreuves de boxe anglaise lors des Jeux olympiques d'été de 2024 se tiennent à Paris, en France, du 27 juillet au 10 août 2024. Il s'agit peut-être de l...

Canadian baseball player (born 1995) Baseball player Tyler O'NeillO'Neill with the St. Louis Cardinals in 2019Boston Red Sox – No. 17OutfielderBorn: (1995-06-22) June 22, 1995 (age 29)Burnaby, British Columbia, CanadaBats: RightThrows: RightMLB debutApril 19, 2018, for the St. Louis CardinalsMLB statistics (through 2024 season)Batting average.246Home runs109Runs batted in278 Teams St. Louis Cardinals (2018–2023) Boston Red Sox (2024–present) Career highlights and awa...

 

 

Autostrada A5 Autostrada della Valle d'AostaAutoroute de la Vallée d'AosteLocalizzazioneStato Italia Regioni Piemonte Valle d'Aosta Province Torino Valle d'Aosta DatiClassificazioneAutostrada InizioTorino FineT1-Monte Bianco presso Courmayeur (AO) Lunghezza143,4[1] km Data apertura1961[2] (primo tratto aperto) Gestore ATIVA (Torino-Quincinetto) SAV (Quincinetto-Aosta) RAV (Aosta-Traforo del Monte Bianco) Pedaggiosistema chiuso tra Settimo Torinese e A...