Skip to main content

Ano ang isang kaakibat na array?

Ang isang kaakibat na hanay, na tinatawag ding isang hash table o hash mapa, ay katulad ng isang karaniwang hanay maliban sa index ng array ay maaaring maging isang string sa halip na isang integer.Sa maraming mga aplikasyon ng database at sa iba pang mga programa na may kinalaman sa malaking halaga ng data, ang isang kaakibat na hanay ay isang mahalagang elemento sa pagtulong upang maisaayos at ma -access ang impormasyon sa isang mahusay na paraan.Sa core ng isang kaakibat na hanay ay isang karaniwang hanay na na -index ng mga integer, tulad ng karaniwang magiging kaso.Ang isang espesyal na algorithm na tinatawag na isang hash function ay nagko -convert ng string index sa isang index ng integer upang mahanap ang halaga.Ito ay isang pare -pareho na pag -convert, kaya ang aktwal na index ng integer ay hindi na kailangang maiimbak ngunit sa halip ay kinakalkula mula sa string kung kinakailangan sa bawat oras.isang normal na hanay.Ano ang karaniwang tatawaging isang index at mdash;ang numerong lokasyon ng isang elemento sa loob ng isang array mdash;ay tinatawag na susi.Ang data na nauugnay sa susi ay tinatawag na halaga.Nangangahulugan ito na, sa loob ng isang kaakibat na hanay, ang isang susi ay nauugnay sa isang halaga, na nakakaugnay sa isang index na tumutukoy sa isang elemento sa isang karaniwang hanay sa istruktura ng data.Ito ay isang algorithm na ginamit upang matukoy ang numerical index ng isang halaga batay sa susi.Mayroong maraming mga uri ng mga pag -andar ng hash, ang ilan ay idinisenyo upang mapatakbo sa mga susi na mga integer at ang ilan ay idinisenyo upang gumana sa mga susi na mga string.Sa kaso ng isang integer key, ang isang tanyag na pamamaraan ay upang hatiin ang pangunahing halaga sa pamamagitan ng laki ng array at gamitin ang nalalabi ng dibisyon na, sana, makakuha ng isang natatanging halaga ng index.

Ang hash function ay maaaring maging mas kumplikadoPara sa mga susi na mga string.Kasama sa ilang mga pamamaraan ang pagdaragdag ng numerong halaga ng bawat character sa string at pagkatapos ay hinati ito sa pamamagitan ng ilang numero, o gamit lamang ang mga unang ilang mga character ng string upang makakuha ng isang natatanging numero.Maraming mga paraan upang makakuha ng isang numero mula sa isang string ng mga character.

Kapag nakikitungo sa isang malaking halaga ng mga pares ng key-halaga sa isang kaakibat na hanay, ang isang problema na maaaring lumitaw ay tinatawag na banggaan.Nangyayari ang pagbangga kapag ang index ng integer na nagmula sa isang susi ay magkapareho sa index ng integer ng isa pang susi.Ang dalawang susi na ito pagkatapos ay epektibong ituro sa parehong index sa halaga ng hanay.Mayroong iba't ibang mga solusyon sa pagbangga, higit sa lahat dahil mayroon itong mataas na posibilidad na mangyari sa karamihan sa mga praktikal na aplikasyon.Lokasyon, ang lokasyon ay maaaring humawak ng higit sa isang halaga.Ito ay tinatawag na chaining at isang simpleng paraan ng paghawak ng isang banggaan, kahit na maaari rin itong pabagalin ang oras na kinakailangan upang makuha ang impormasyon.Ang isa pang paraan ng pakikitungo sa isang banggaan ay tinatawag na linear probing.Kapag naganap ang isang banggaan, gumagana ang linear probing sa pamamagitan ng paglipat ng halaga ng halaga hanggang sa natagpuan ang isang hindi nagamit na index.Ang solusyon na ito ay makakatulong upang mapanatili ang data na pantay na ipinamamahagi sa array ng kaakibat, ngunit maaari rin itong dagdagan ang dami ng oras na kinakailangan upang maghanap ng isang halaga.