Uploaded by Жахонгирбек Латипов

Hash Tables and Hashing Algorithms Presentation

advertisement
XESH JADVALLAR
VA XESHLASH
ALGORITMLARI
Xeshlash (Hashing)
Xeshlash — bu har qanday uzunlikdagi ma'lumotni ma'lum bir uzunlikdagi
o‘ziga xos qiymatga (xesh-kodga) o‘zgartirish jarayoni. Xeshlash odatda
ma’lumotlarni tezroq qidirish, shifrlash, tekshirish yoki ma’lumotlarni unikal
tarzda tasniflash uchun ishlatiladi.
Xeshlash - bu kirish ma’lumotlari massivini determenistik algoritm asosida chekli
uzunlikdagi chiqish satriga aylantirishdir.
Boshqacha qilib aytganda, xeshlash - bu shunday jarayonki, unda kirish
massividagi ma’lumotlar maxsus algoritm asosida bitlar ketmaketligiga almashtiriladi.
XESH TUSHUNCHASI.
Hesh ingliz tilidagi “HASH”
so’zidan olingan bo’lib,
CHALKASH degan ma’noni
bildiradi.
Hesh funksiya bu-kiruvchi
ma’lumotlarning ixtiyoriy uzunlikdagi
massivini belgilangan aniq
uzunlikdagi bitlar qatoriga bir
algoritm orqali akslantiruvchi bir
tomonlama funksiyadir.
Xeshlashdan qayerda foydalaniladi?
•Ma’lumotlarni indekslash va qidirish – Xeshlash katta hajmdagi
ma’lumotlarni tezroq qidirishga yordam beradi.
•Parollarni saqlash – Foydalanuvchilarning parollari xesh holatida
saqlanadi, bu ularni xavfsiz qiladi.
•Kriptografiya – Xeshlash shifrlash algoritmlarida muhim rol
o‘ynaydi.
•Raqamli imzolar va tekshirish – Ma’lumotlar
o‘zgartirilmaganligini tekshirish uchun ishlatiladi.
Xesh Funksiya (Hash Function)
Xesh funksiya — bu berilgan kirish ma’lumotini (odatda matn yoki raqam) ma’lum
bir uzunlikdagi xesh qiymatiga (hash value) aylantiruvchi matematik algoritmdir.
Xesh funksiya quyidagi xususiyatlarga ega bo‘lishi kerak:
1.Tez ishlashi – berilgan ma’lumot uchun xesh qiymatini tez hisoblab berishi
kerak.
2.Deterministik bo‘lishi – bir xil kirish qiymati doimo bir xil xesh qiymatini berishi
kerak.
3.Xesh qiymatining bir xilligi – har qanday kichik o‘zgarish xesh qiymatini butkul
o‘zgartirishi kerak.
4.Orqaga qaytarib bo‘lmasligi – xesh qiymatidan asl ma’lumotni qaytarib olish
qiyin yoki imkonsiz bo‘lishi kerak.
5.Kolliziyaga (hash collision) qarshi turishi – turli xil ma’lumotlar uchun bir xil
xesh qiymati hosil bo‘lmasligi kerak.
XESH JADVALLAR
Tartibli ro’yxat
Tartibsiz ro’yxat
Sumka
100000
Qalam
10000
Kitob
60000
Daftar
5000
Ruchka
15000
Sumka
100000
Qalam
10000
Ruchka
15000
Daftar
5000
Kitob
60000

Shu yerdan mahsulotni nomini qidirsak qancha vaqt keadi?

Ya’ni binar qidiruv uchun O (log2N) logorifm 2 asosga ko’ra N

Linary Search uchun esa O (N)
Agar qidiruvni kichikroq ma’lumotlar
tuzilmasida qidirayotgan bo’lsangiz bu
muammo yaratmaydi. Ammo minglab
yoki millionlab elementdan iborat
ma’lumotlar tuzilmasida ish olib
borayotgan bo’lsangizchi?
Tartibsiz ro’yxat
Qalam
10000
Daftar
5000
Sumka
100000
Ruchka
15000
Kitob
60000
 Tasavvur qiling siz ushbu
ro’yxatni yodlab olgan
bo’lsangiz bunday ro’yxat
qidiruvni amalga oshirish endi
O(1) ga teng bo’ladi. Ya’ni siz bir
deganda istalgan mahsulotning
narxini aytib bera olasiz
• Hesh jadvallari yordamida kompyuter uchun yodlab
olish dasturlarini ishlab chiqishimiz mumkin bo’ladi.
Hesh funksiya
matnni
takrorlanmas noyob
songa o’tkazi beradi
HASH
7
“kitob”
Hesh funksiyalarning
turi ko’pligi uni tashkil
qilishda qiyinchilikni
keltirib chiqarmaydi
Yaxshi hesh funksiyaning
belgilari:
-bir xil matn uchun bir xil
son qaytarish kerak;
-har xil matn uchun har xil
son qaytarishi kerak;
HASH
“kitob”
7
Hesh funksiya sizga kerakli oraliqdagi sonlarni
qaytaradi
Ma’lumotlarni hesh jadvalda saqlash
ARRAY
Tartibli ro’yxat
Sumka
100000
Kitob
60000
Ruchka
15000
Qalam
10000
“Sumka”
“Kitob”
“Ruchka”
“Qalam”
Daftar
HASH
HASH
HASH
HASH
0
1
HASH
100000
1
60000
2
15000
3
10000
4
5000
2
3
5000
“Daftar”
0
4
ARRAY
Tartibli ro’yxat
Sumka
100000
Kitob
60000
“Sumka”
“Kitob”
Ruchka
15000
Qalam
10000
Daftar
5000
HASH
HASH
0
0
100000
1
60000
2
15000
3
10000
4
5000
0
ARRAY
0
SUMKA
1
60000
2
15000
3
10000
4
5000
100000
*
KITOB
60000
*
Hesh jadvallar qay hollarda ko’p
foydalaniladi?
Google maps va shunga o’xshash
dasturlarda
Online savdo tarmoqlarida
Ijtimoiy tarmoqlar yoki shunga o’xshash
dasturlarda
Download