www.wikidata.uk-ua.nina.az
Asociati vnij masi v angl associative array abo slovnik hesh v anglijskij literaturi takozh zastosovuyutsya termini associative container map mapping hash dictionary finite map abstraktnij tip danih interfejs do shovisha danih sho dozvolyaye zberigati dani u viglyadi naboru par klyuch znachennya ta dostupom do znachen za yih klyuchem Realizaciyi asociativnih masiviv zazvichaj pidtrimuyut operaciyi dodavannya pari a takozh poshuku ta vidalennya pari za klyuchem vstaviti klyuch znachennya shukati klyuch viluchiti klyuch Peredbachayetsya sho asociativnij masiv ne mozhe mistiti dvi pari z odnakovimi klyuchami U pari k v znachennya v nazivayetsya znachennyam sho asociyuyetsya z klyuchem k Zalezhno vid realizaciyi klyuchi ta znachennya mozhut zadavatisya i mnozhinami znachen Operaciya shukati klyuch povertaye znachennya sho asociyuyetsya iz zadanim klyuchem abo yakijs specialnij ob yekt sho vkazuye na vidsutnist takogo asocijovanogo znachennya Dvi inshi operaciyi nichogo ne povertayut Zazvichaj u riznih realizaciyah asociativnogo masivu semantika i nazvi operacij mozhut vidriznyatisya Asociativnij masiv z poglyadu interfejsu zruchno rozglyadati yak zvichajnij masiv v yakomu yak indeksi mozhna vikoristovuvati ne tilki cili chisla ale i znachennya inshih tipiv napriklad ryadka Pidtrimka asociativnih masiviv z dopomogoyu standartnih zasobiv ye v bagatoh interpretovanih movah programuvannya visokogo rivnya takih yak Swift Perl PHP Python Ruby Tcl JavaScript tosho U C asociativnij masiv pidtrimuyetsya na rivni shablonnih klasiv biblioteki STL map ta sporidneni klasi Zmist 1 Prikladi 2 Rozshirennya asociativnogo masivu 3 Realizaciyi asociativnogo masivu 4 Pidtrimka asociativnih masiviv v movah programuvannya 4 1 Biblioteka STL movi C 5 Posilannya 5 1 Teoriya 6 Div takozhPrikladi red Prostim prikladom asociativnogo masivu ye telefonnij dovidnik Klyuchem u comu vipadku ye sukupnist PIB adresa a znachennyam nomer telefonu Inshim prikladom mozhe buti baza danih domennih imen v Interneti yaka domennomu imeni zistavlyaye IP adresu Tut domenne im ya bude klyuchem a IP adresa znachennyam Rozshirennya asociativnogo masivu red Vkazani tri operaciyi chasto dopovnyuyutsya inshimi Tipovi rozshirennya vklyuchayut nastupni operaciyi ochishennya vidaliti vsi zapisi obhid probigtisya po vsih parah sho zberigayutsya minimalne klyuch znajti paru z minimalnim znachennyam klyucha maksimalne klyuch znajti paru z maksimalnim znachennyam klyuchaU ostannih dvoh vipadkah neobhidno shob na klyuchah bula viznachena operaciya porivnyannya Realizaciyi asociativnogo masivu red Isnuyut rizni sposobi realizaciyi asociativnogo masivu Najprostisha realizaciya mozhe gruntuvatisya na zvichajnomu masivi elementami yakogo ye pari klyuch znachennya Dlya priskorennya operaciyi poshuku mozhna uporyadkuvati elementi cogo masivu po klyuchu i zdijsnyuvati poshuk metodom dilennya navpil Ale ce zbilshit chas vikonannya operaciyi dodavannya novoyi pari oskilki neobhidno bude rozsuvati elementi masivu shob v porozhnye misce sho utvorilosya pomistiti novij zapis Najpopulyarnishi realizaciyi zasnovani na riznih derevah poshuku Tak napriklad v standartnij biblioteci STL movi S kontejner map realizovanij na osnovi chervono chornogo dereva U movah Ruby Tcl Python vikoristovuyetsya odin z variantiv hesh tablici Ye j inshi realizaciyi U kozhnoyi realizaciyi ye svoyi perevagi i nedoliki Vazhlivo shob vsi tri operaciyi vikonuvalisya yak v serednomu tak i u girshomu razi za chas O log n de n potochna kilkist par sho zberigayutsya Dlya zbalansovanih derev poshuku zokrema dlya chervono chornih derev cya umova vikonana U realizaciyah pobudovanih na hesh tablicyah serednij chas ocinyuyetsya yak O 1 sho krashe nizh v realizaciyah pobudovanih na derevah poshuku Ale pri comu ne garantuyetsya visoka shvidkist vikonannya okremoyi operaciyi chas operaciyi vstavki v girshomu vipadku ocinyuyetsya yak O n Operaciya vstavki vikonuyetsya dovgo koli koeficiyent zapovnennya staye visokim i neobhidno perebuduvati indeks hesh tablici Hesh tablici pogani takozh tim sho na yihnij osnovi ne mozhna realizuvati shvidki dodatkovi operaciyi poshuku minimalnogo ta maksimalnogo znachen i algoritm obhodu vsih zberezhenih par v poryadku zrostannya abo spadannya klyuchiv Pidtrimka asociativnih masiviv v movah programuvannya red Biblioteka STL movi C red Tut privedenij prostij konsolnij zastosunok sho nadaye interfejs telefonnoyi knizhki Vin realizovanij na osnovi kontejnera map include lt iostream gt include lt string gt include lt map gt using namespace std int main string cmd name phone map lt string string gt book while cin gt gt cmd if cmd add cin gt gt name gt gt phone book name phone cout lt lt Added lt lt endl else if cmd find cin gt gt name cout lt lt name lt lt s phone is lt lt phone name lt lt endl else if cmd del cin gt gt name book erase name cout lt lt Deleted lt lt endl else if cmd view map lt string string gt iterator i for i book first i book end i cout lt lt i first lt lt t lt lt i second lt lt endl else if cmd quit return 0 else cerr lt lt Bad command lt lt cmd lt lt lt lt endl return 0 Posilannya red Klasi abo moduli sho realizovuyut asociativnij masiv abo jogo rozshirennya v riznih movah programuvannya Kontejner map v STL storinka dopomogi std map na MSDN Arhivovano 23 bereznya 2009 u Wayback Machine storinka dopomogi std map na SGI STL Arhivovano 23 lyutogo 2009 u Wayback Machine storinka dopomogi std hashmap SGI STL Arhivovano 30 grudnya 2017 u Wayback Machine Klas Hash Arhivovano 4 veresnya 2011 u Wayback Machine v Ruby Modul Array v Tcl Klas Dict v Python Klas TreeDictionary v C Interfejs Map Arhivovano 4 bereznya 2016 u Wayback Machine v JavaTeoriya red NIST s Dictionary of Algorithms and Data Structures Associative Array Arhivovano 30 sichnya 2009 u Wayback Machine NIST s Dictionary of Algorithms and Data Structures Association List Arhivovano 16 grudnya 2008 u Wayback Machine Div takozh red Hesh tablicya Otrimano z https uk wikipedia org w index php title Asociativnij masiv amp oldid 37253150