Идентифиқатор жадвалини дарахт шаклида тузиш
Download 63.6 Kb.
|
daraxt usuli xeshlash rexeshlash va zanjir usuli
Рехэшлаш усули.
Бу муаммани ечиш усуллардан бири рехэширлаш усулидир. Бирор элемент А учун n=h(A) хисобланади, агар шу адрес бўйича хотира ячейкаси банд бўлса , n1=h1(A) функция қиймати хисобланади агар бу адрес хам банд бўлса элемент бўлса n2=h2(A) фукция хисобланади, ва хоказо қачанки бўш адрес топилмаса ёки ni=n тенг бўлиб қолса, бу холда жадвал тўлган деб хисобланади ва хато беради. Бу усулда идентификаторлар жадвали бўш белгиси билан тўлдирилиши керак масалан “” ёки NULL билан. H функция куйидаги формула билан ёзилиши мумкин hi=( h(A) +pi)mod Nm , бунда pi – қандайдир формула билан хисобланадиган сон, Nm - идентификатор жадвалидаги элементлар максимал сони. Энг содда усули pi=i Шунда формуламиз куйидагича бўлади hi=(h(A)+i)mod Nm. Бу холда хэш функцияни қиймати бир хил бўлса h(A) ўриндан бошлаб кетма кет ячейкалар бўшлиги текширилади. Танланган формула унча яхши эмас чунки элементлар бир жойга тўпланиб қолади. М исол тарақасида кетмакет жойлашган n1,n2,n3,n4,n5 жадвал ячейкаларни кўрайлик ва А1,А2,А3,А4,А5 идентификаторларни жадвалга юклайлик. Функциялар h(A1)=h(A2)=h(A5)=n1, h(A3)=n2, h(A4)=n4 тенг бўлсин. Натижада А1 элементни қидириш учун факат битта солиштириш етарли, А2 учун 2, А3 учун 2, А4 учун 1 ва А5 учун 5 солиштириш керак бўлади. Бундан кўриниб турибдики солиштиришлар сони коллизияга боғлиқдир , канча коллизия кам бўлса шунчалик солиштиришлар хам кам бўлади. Ундан ташқари шундай р қиймат топиш керакки у коллизияни жадвал бўйича жипслаштирмасдан кенг тарқатиши керак. Шундай усулдан бири р тасодифий сонлар бўлиши. Кўпайтма кўринишдаги хэш функция hi=(h(A)*i)mod Nm хам яхши натижа беради. Download 63.6 Kb. Do'stlaringiz bilan baham: |
Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling
ma'muriyatiga murojaat qiling