www.wikidata.uk-ua.nina.az
Gesh tablicya 1 struktura danih sho realizuye interfejs asociativnogo masivu a same vona dozvolyaye zberigati pari klyuch znachennya i zdijsnyuvati tri operaciyi operaciyu dodavannya novoyi pari operaciyu poshuku i operaciyu vidalennya za klyuchem Zmist 1 Vstup 2 Vlastivosti gesh tablici 3 Rozv yazannya kolizij 3 1 Metod lancyuzhkiv 3 2 Vidkrita adresaciya 3 2 1 Ob yednane geshuvannya 3 2 2 Zozuline geshuvannya 3 2 3 Hopscotch geshuvannya 3 2 4 Geshuvannya Robina Guda 4 Primitki 5 Div takozhVstup RedaguvatiIsnuye dva osnovnih varianta gesh tablic z lancyuzhkami i z vidkritoyu adresaciyeyu Gesh tablicya mistit v sobi deyakij masiv H elementami yakogo ye pari gesh tablicya z vidkritoyu adresaciyeyu abo spiski par gesh tablicya z lancyuzhkami Vikonannya operacij v gesh tablici pochinayetsya z obchislennya gesh funkciyi vid klyucha Otrimane gesh znachennya i hash key vidigraye rol indeksu v masivi H Pislya cogo operaciya dodavannya vidalennya poshuk perenapravlyayetsya ob yektovi yakij zberigayetsya u vidpovidnij komirci masivu H i Situaciya koli dlya riznih klyuchiv otrimuyetsya odne j te same gesh znachennya nazivayetsya koliziyeyu Taki podiyi nepoodinoki napriklad pri dodavanni v gesh tablicyu rozmirom 365 komirok usogo lishe 23 h elementiv jmovirnist koliziyi vzhe perevishuye 50 vidsotkiv yaksho kozhnij element mozhe z odnakovoyu jmovirnistyu potrapiti v bud yaku komirku div paradoks dniv narodzhennya Cherez ce mehanizm rozv yazannya kolizij vazhliva skladova bud yakoyi gesh tablici V deyakih osoblivih vipadkah vdayetsya vzagali uniknuti kolizij Napriklad yaksho vsi klyuchi elementiv vidomi zazdalegid abo duzhe ridko zminyuyutsya todi dlya nih mozhna znajti deyaku doskonalu gesh funkciyu en yaka rozpodilit yih za komirkami gesh tablici bez kolizij Gesh tablici yaki vikoristovuyut podibni gesh funkciyi ne potrebuyut mehanizmu rozv yazannya kolizij i nazivayutsya gesh tablicyami z pryamoyu adresaciyeyu Vlastivosti gesh tablici RedaguvatiVazhliva vlastivist gesh tablic polyagaye v tomu sho pri deyakih rozumnih pripushennyah vsi tri operaciyi poshuk vstavlennya i vidalennya elementiv zazvichaj vikonuyetsya za chas O 1 Ale pri comu ne garantuyetsya sho chas vikonannya okremoyi operaciyi malij z pevnoyu imovirnistyu chas mozhe buti sumirnim iz poshukom u spisku Z rostom koeficiyenta zapovnennya tablici cya imovirnist i vidpovidno serednij chas vikonannya operacij rostut Tomu pri dosyagnenni deyakogo znachennya koeficiyenta zapovnennya neobhidno zdijsnyuvati perebudovu indeksu gesh tablici zbilshiti rozmiri masivu H i zanovo dodati v porozhnyu gesh tablicyu vsi pari Rozv yazannya kolizij RedaguvatiIsnuye dekilka sposobiv rozv yazannya kolizij Metod lancyuzhkiv Redaguvati nbsp Rozv yazannya kolizij za dopomogoyu lancyuzhkiv Kozhna komirka masivu H ye vkazivnikom na zv yazanij spisok lancyuzhok par klyuch znachennya vidpovidnih odnomu i tomu samomu gesh znachennyu klyucha Koliziyi prosto prizvodyat do togo sho z yavlyayutsya lancyuzhki dovzhinoyu bilshe odnogo elementa Operaciyi poshuku abo vidalennya elementa vimagayut pereglyadu vsih elementiv vidpovidnogo lancyuzhka shob znajti v nomu element z zadanim klyuchem Dlya dodavannya novogo elementa neobhidno dodati element v kinec abo pochatok vidpovidnogo spisku i u vipadku yaksho koeficiyent zapovnennya stane zanadto velikim zbilshiti rozmir masivu H i perebuduvati tablicyu Pri pripushenni sho kozhnij element mozhe potrapiti v bud yaku poziciyu tablici H z odnakovoyu jmovirnistyu i nezalezhno vid togo kudi potrapiv bud yakij element peresichnij chas roboti operaciyi poshuku elementa skladaye 8 1 a de a koeficiyent zapovnennya tablici Vidkrita adresaciya Redaguvati nbsp Priklad rozv yazku kolizij v gesh tablici z vidkritoyu adresaciyeyu ta linijnim pereborom interval 1 Zauvazhte Ted Baker maye unikalne gesh znachennya ale vse odno utvoryuye koliziyu z Sandra Dee yaka pered cim stvorila koliziyu z John Smith V strategiyi nazvanij vidkritoyu adresaciyeyu en vsi zapisi zberigayutsya v samomu masivi H Koli dodayetsya novij zapis masiv pereviryayetsya v pevnomu poryadku doki ne bude znajdena vilna komirka kudi bude dodanij element U vipadku poshuku elementa masiv skanuyetsya v tij samij poslidovnosti doki potribnij zapis abo porozhnya komirka ne bude znajdena Ostannye oznachaye vidsutnist elementa 2 Nazva vidkrita adresaciya pokazuye sho polozhennya adresa elementa ne viznachayetsya jogo gesh znachennyam Cej metod takozh nazivayut zakritim geshuvannyam Zagalom poslidovnist u yakij pereglyadayutsya komirki gesh tablici zalezhit lishe vid klyucha elementa Tobto ce poslidovnist h0 x h1 x hn 1 x de x klyuch elementa a hi x dovilna funkciya yaka porivnyuye kozhen klyuch komirki z gesh tabliceyu Pershij element poslidovnosti zazvichaj dorivnyuye znachennyu deyakoyi gesh funkciyi vid klyucha a nastupni obchislyuyutsya odnim z navedenih nizhche sposobiv Dlya uspishnoyi roboti algoritmu poshuku poslidovnist pereboru maye buti takoyu shob vsi komirki gesh tablici viyavilis pereglyanutimi rivno po odnomu razu Algoritm poshuku pereglyadaye vsi komirku gesh tablici v tomu samomu poryadku sho i pri vstavci doki ne znajdetsya abo element z shukanim klyuchem abo vilna komirka sho oznachaye vidsutnist elementa v gesh tablici Vidalennya elementiv u takij shemi skladnishe Zazvichaj vono zdijsnyuyetsya takim chinom zavodyat bulevij praporec dlya kozhnoyi komirki Vin maye oznachati vidalenij cej element z tablici chi ni Tobto vidalennya elementa oznachaye vstanovlennya cogo praporcya Pri comu dovedetsya modifikuvati proceduru poshuku isnuyuchogo elementa tak shob vona vvazhala vidaleni komirki zajnyatimi a proceduru dodavannya shob vona yih vvazhala vilnimi i skidala praporec pri dodanni elementa Nizhche navedeni deyaki rozpovsyudzheni varianti pereboriv Odrazu zauvazhimo sho numeraciya elementiv poslidovnosti sprob i komirok gesh tablici pri perebori vedetsya vid nulya a N rozmir gesh tablici Linijne zonduvannya komirki gesh tablici poslidovno pereglyadayutsya z deyakim fiksovanim intervalom k mizh komirkami zazvichaj tobto i j element poslidovnosti ce komirka z nomerom hash x ik mod N Dlya togo shob vsi komirki viyavilis perebranimi po odnomu razu neobhidno shob k bulo vzayemno prostim z rozmirom gesh tablici Kvadratichne zonduvannya interval mizh komirkami z kozhnim krokom zbilshuyetsya na konstantu sho zadayetsya v zagalnomu viglyadi z dopomogoyu deyakogo kvadratichnogo polinomu k1i k2i2 U najprostishomu vipadku k1 0 k2 1 dlya i 0 1 2 3 otrimayemo h0 hash x mod N h1 hash x 12 mod N h2 hash x 22 mod N h3 hash x 32 mod N Podvijne geshuvannya interval mizh komirkami fiksovanij yak pri linijnomu perebori ale na vidminu vid nogo rozmir intervalu obchislyuyetsya drugoyu dopomizhnoyu gesh funkciyeyu tobto mozhe buti riznim dlya riznim klyuchiv Znachennya ciyeyi gesh funkciyi mayut buti nenulovimi i vzayemno prostimi z rozmirom gesh tablici sho najprostishe vsogo zrobiti yaksho vzyati proste chislo yak rozmir i vimagati shob dopomizhna gesh funkciya prijmala znachennya vid 1 do N 1 Nedolikom usih shem vidkritoyi adresaciyi ye te sho kilkist elementiv yaki mozhut zberigatisya v tablici mozhe dosyagti kilkist komirok v masivi Dijsno navit z horoshimi gesh funkciyami produktivnist serjozno padaye pri koeficiyenti zavantazhennya bilshomu nizh 0 7 abo bilya togo Dlya bagatoh zastosuvan ce obmezhennya viklikaye neobhidnist vikoristannya dinamichnoyi zminu rozmiru z vidpovidnimi zatratami Shemi vidkritoyi adresaciyi takozh nakladayut suvorishi vimogi do gesh funkciyi okrim rivnomirnogo rozpodilu znachen po vsomu masivu funkciya maye takozh minimizuvati skupchennya gesh znachen sho sliduyut odna za odnoyu v poslidovnosti sprob Vidkrita adresaciya zberigaye pam yat tilki u vipadku yaksho elementi malogo rozmiru i koeficiyent zavantazhennya ne duzhe malij Yaksho koeficiyent zavantazhennya blizkij do nulya vidkrita adresaciya marnotratna navit yaksho kozhen element zajmaye lishe dva mashinnih slova nbsp Grafik porivnyuye peresichnu kilkist vtrat potribnih dlya poshuku elementa v tablici metodom lancyuzhkiv i linijnim pereborom Koli tablicya zavantazhena bilshe nizh na 80 efektivnist linijnogo pereboru znachno padaye Vidkrita adresaciya unikaye vitrat na rozmishennya kozhnogo novogo elementa i mozhe buti realizovana navit u vidsutnosti rozpodilnika pam yati Vona takozh unikaye dodatkovih posilan dlya dostupu do naboru elementiv z pevnim odnakovim znachennyam gesh funkciyi Z malimi rozmirami elementiv cej faktor mozhe dodati produktivnosti porivnyano z tabliceyu organizovanoyu metodom lancyuzhkiv osoblivo pri poshuku Gesh tablicya z linijnoyu adresaciyeyu takozh legshe serializuyetsya cherez vidsutnist vkazivnikiv Z inshogo boku zazvichaj vidkrita adresaciya poganij vibir dlya velikih elementiv cherez te sho taki elementi zapovnyuyut ves kesh procesora nivelyuyuchi perevagi keshu takozh znachna kilkist miscya vtrachayetsya cherez veliku kilkist porozhnih komirok Yaksho vidkrita adresaciya zberigaye tilki vkazivniki na elementi vona vikoristovuye kilkist pam yati yaku mozhna porivnyati z vikoristannyam pam yati metodom lancyuzhkiv ale vtrachaye perevagu v shvidkosti Uzagalnyuyuchi vidkritu adresaciyu krashe vikoristovuvati dlya gesh tablic z malimi elementami yaki zberigayutsya v tablici Voni osoblivo pidhodyat dlya elementiv v odne slovo abo menshih U vipadku koli ochikuyetsya visokij koeficiyent zavantazhennya elementi veliki za rozmirom abo mozhut mati rizni rozmiri metod lancyuzhkiv pokazuye taku zh abo krashu produktivnist Zreshtoyu pri rozumnomu vikoristanni bud yakij algoritm zazvichaj dostatno shvidkij i vidsotok obchislen v gesh tablicyah malij Vikoristannya pam yati ridko vvazhayetsya nadmirnim Otzhe v bilshosti vipadkiv riznicya mizh cimi dvoma algoritmami minimalni i yak pravilo inshi mirkuvannya vihodyat na arenu Ob yednane geshuvannya Redaguvati Gibrid metodu lancyuzhkiv ta vidkritoyi adresaciyi angl Coalesced hashing sho rozv yazuye koliziyi z dopomogoyu dodatkovih lanok mizh vuzlami zv yazanih spiskiv vseredini tablici 2 Yak i metod lancyuzhkiv ne maye klasternih efektiv i gesh tablicya mozhe buti efektivno zapovnena Zozuline geshuvannya Redaguvati She odna alternativa vidkritoyi adresaciyi angl Cuckoo hashing zabezpechuye postijnij chas poshuku i stalij amortizovanij chas dlya vstavok i viluchen Cej metod vikoristovuye dvi chi bilshe gesh funkciyi a ce oznachaye sho bud yaka para klyuch znachennya mozhe znahoditis v dvoh abo bilshe miscyah Dlya poshuku vikoristovuyetsya persha gesh funkciya yaksho klyuch znachennya ne znajdeno to vikoristovuyetsya druga gesh funkciya i tak dali Yaksho koliziya vidbuvayetsya pid chas vstavki to klyuch povtorno geshuyetsya drugoyu gesh funkciyeyu shob vidobraziti jogo v inshij baket Yaksho vsi funkciyi geshuvannya vikoristani a koliziya ne rozv yazana to starij klyuch na misci koliziyi vidalyayetsya shob zvilniti misce dlya novogo klyucha i cej poperednij starij klyuch povtorno geshuyetsya odniyeyu z nastupnih gesh funkcij yaki vidobrazhayut jogo v inshij baket Yaksho ce takozh prizvodit do koliziyi to proces povtoryuyetsya poki koliziya ne znikne abo proces projde cherez vsi baketi v tablici Takim shlyahom optimizuyetsya vikoristannya pam yati Hopscotch geshuvannya Redaguvati Inshij alternativnij metod poyednuye v sobi zozuline geshuvannya ta linijne zonduvannya ale takim chinom shob obijti obmezhennya cih metodiv 3 Zokrema vin dobre pracyuye navit todi koli koeficiyent zavantazhennya tablici zrostaye do 0 9 Geshuvannya Robina Guda Redaguvati Variant geshuvannya z vidkritoyu adresaciyeyu de v tablici zberigayetsya krim klyucha kilkist kolizij pri poshuku PSL probe sequence length dovzhina poslidovnosti perevirok 4 Yaksho poshuk miscya dlya novogo elementa maye bilshij PSL nizh v elementa tablici z yakim vinikla koliziya to novij element vstavlyayetsya na ce misce i pidshukuyetsya nove misce vzhe dlya cogo elementa Takim chinom algoritm miscya zabiraye u bagatih elementiv z nevelikim PSL i viddaye bidnim yakih skladno znajti yak za legendoyu chiniv Robin Gud Ce dozvolyaye navit u girshomu razi robiti poshuk za O log n krokiv bo pri zapovnenij tablici statistichno jmovirnishe pri koliziyi znajti element u seredini lancyuzhka poshuk elementa takozh mozhna optimizuvati zastosuvavshi tak zvanij rozumnij poshuk sho pochinayetsya z seredini lancyuzhka i ruhayetsya po odnomu kroku do pochatku i do kincya lancyuzhka tobto v poslidovnosti serednij serednij 1 serednij 1 serednij 2 serednij 2 i t d Primitki Redaguvati gesh tablicya Anglijsko ukrayinskij slovnik z matematiki ta informatiki uklad Ye Mejnarovich M Kratko 2010 a b Tenenbaum Aaron M Langsam Yedidyah Augenstein Moshe J 1990 Data Structures Using C Prentice Hall s 456 461 pp 472 ISBN 0 13 199746 7 Herlihy Maurice Shavit Nir Tzafrir Moran 2008 Hopscotch Hashing DISC 08 Proceedings of the 22nd international symposium on Distributed Computing Berlin Heidelberg Springer Verlag s 350 364 Celis Pedro Robin Hood Hashing Univercity of Waterloo Div takozh RedaguvatiTablicya poshuku Avtovivifikaciya Otrimano z https uk wikipedia org w index php title Gesh tablicya amp oldid 40694012