Ma’lumotlarni xeshlash algoritmlari. Xesh jadval va xesh funksiyalari



Yüklə 274,28 Kb.
Pdf görüntüsü
səhifə3/4
tarix04.11.2022
ölçüsü274,28 Kb.
#67309
1   2   3   4
0Ygi4ilsxvqxR2gIiGeo5xYg8uZjfHDtzcLDHRDR

using
namespace
std
;
int
h
(char
*
key
,
int
m
)
{
int
len 
=
strlen(
key
);
int

=
0
;
if(
len 
<
2
)

=
key
[
0
];
else
{

=
key
[
0
]
+
key
[
len
-
1
];
}
return

%
m
;


}
int
main()
{
char
key
[]
=
{
'b'
,
'a'
,
'c'
};
int

=
h
(
key
,
10
);
cout<<
s
;
return
0
;
}
Kvadrat o’rtasi usuli.
Kalit kvadratga oshiriladi va indeks sifatida olingan qiymatning bir necha 
o’rta raqamlari olinadi.
3-masala. Kalit 32 bit son, xesh funksiya qiymat sifatida kvadratning o’rtadagi 10 bit olinadi.
#include 
<
iostream
>
#include 
<
string.h
>
using
namespace
std
;
int
h
(int
key
)
{
key 
*=
key
;
key 
>>=
11
;
//11 ta kichik bit olib tashlanadi
return
key 
%
1024
;
//10 kichik bitni oladi
}
int
main()
{
int
key 
=
145
;
int

=
h
(
key
);
cout<<
s
;
return
0
;
}
KOLLIZIYA MASALASINI YECHISH 
Chiziqli probalash usulida kolliziya masalasini yechish mumkin. Agar hisoblangan xesh qiymati 
ko’rsatgan o’rinda boshqa element mavjud bo’lsa u holda unda keyin bo’sh o’rin qidiriladi. Bo’sh 
o’rin topilganda qiymat shu o’ringa yoziladi.
С++ STL kutubxonasida xeshlash 
Xesh jadval bu konteyner bo’lib unga elementlarni qo’shish, o’chirish, qidirish o’rtacha O(1) 
murakkablikda amalga oshiriladi. 
Xesh-jadval zanjirli yoki ochiq bo’lishi mumkin.


Zanjirli jadvalda asosiy ma’lumotga havola saqlanadi. Ya’ni xesh-jadvalda ma’lumotning o’zi 
saqlanmaydi, faqat xesh va havolalar saqlanadi (bucket). 
Ochiq jadvalda ma’lumotlar jadvalning o’zida saqlanadi. Lekin asosiy ma’lumot aniq shu xeshda 
saqlanishiga kafolat yo’q.


STL zanjirli xesh-jadvalni unordered_set orqali realizatsiya qiladi.
Metodlari: 
• insert() – to’plamga element qo’shish 
• count() – elementlar sonini aniqlash 
• find() – elementni qidirsh 
• size() – to’plam o’lchamini aniqlash 
• erase() – to’plamdan elementni o’chirish 
• clear() – barcha elementlarni o’chirish 
• empty() – to’plam bo’shligini tekshirish 
4-masala. unordered_set tipida xesh-jadval yaratiladi va ma’lumotlar jadvalga yuklanadi. 
#include 
<
iostream
>
#include 
<
unordered_set
>

Yüklə 274,28 Kb.

Dostları ilə paylaş:
1   2   3   4




Verilənlər bazası müəlliflik hüququ ilə müdafiə olunur ©azkurs.org 2024
rəhbərliyinə müraciət

gir | qeydiyyatdan keç
    Ana səhifə


yükləyin