Идентифиқатор жадвалини дарахт шаклида тузиш


Download 63.6 Kb.
bet2/3
Sana25.10.2023
Hajmi63.6 Kb.
#1720314
1   2   3
Bog'liq
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 жадвал ячейкаларни кўрайлик ва А12345 идентификаторларни жадвалга юклайлик. Функциялар 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:
1   2   3




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling