To'qnashuvlar - Yuqorida ta'kidlab o'tilganidek, har bir kalit raqamli (kredit kitobi raqami), alifbo (talabaning ismi) yoki alifbo-raqamli (guruh raqami) bo'lishi mumkin. Biroq, kalitlarni butun sonlarga aylantirish har doim ham mumkin, shuning uchun biz kalitlar to'plami butun sonlardan iborat deb taxmin qilamiz.
- Har qanday yaxshi xeshlash funktsiyasi kalitlarni manzil qiymatlari oralig'ida iloji boricha teng ravishda taqsimlashi kerak. Biroq, Ki<>kJ tugmachalari H(Ki)=h(Kj) kabi bo'lishi ehtimoli har doim mavjud. Ushbu holat hashing paytida to'qnashuv deb ataladi.
- Xeshlash usulidan foydalanganda ikkita muammoni hal qilish kerak: xeshlash funktsiyasini va to'qnashuvlarni hal qilish usulini tanlang.
- To'qnashuvlarni hal qilishning ikkita asosiy usuli mavjud: ochiq adreslash usuli va zanjir usuli.
- Kalit qo'shish
- Pıhtılaşma usulida kalit qismlarga bo'linadi, ularning har biri kerakli manzil uzunligiga teng uzunlikka ega. Manzil ushbu qismlarning yig'indisi sifatida shakllanadi. Bunday holda, yuqori toifaga o'tkazish e'tiborga olinmaydi.
- 3415768898 kaliti berilsin. Ikki, uch va to'rt raqamli manzillar uchun biz quyidagi qiymatlarni olamiz
- 34+15+76+88+98 = 11;
- 3+415+768+898 = 084;
- 34+1576+8898 = 0508.
- Pıhtılaşma usuli odatda katta kalitlar uchun ishlatiladi.
- Amaliyot shuni ko'rsatadiki, o'ngdan chapga bo'linish chapdan o'ngga bo'linishdan afzaldir.
- Ichki zanjir usulida sinonimlar uchun bog'langan ro'yxatlar jadval ichida saqlanadi. Jadvalda bo'sh joyni topish uchun siz turli xil usullardan foydalanishingiz mumkin. Masalan, jadval pozitsiyalarini ketma-ket ko'rish.
- Yangi kalitlarni kiritishda Xash manzillarini guruhlarga birlashtirish tendentsiyasi paydo bo'ladi, bu esa ro'yxatlarning birlashishiga olib keladi. Shunday qilib, Xash funktsiyasi bilan sinonim bo'lmagan kalitlar ro'yxatni uzaytirib, bitta ro'yxatga kiritilishi mumkin. Ko'pincha ichki zanjir usuli birlashtirilgan zanjir usuli deb ataladi.
Do'stlaringiz bilan baham: |