Introduction to Algorithms, Third Edition



Download 4,84 Mb.
Pdf ko'rish
bet176/618
Sana07.04.2022
Hajmi4,84 Mb.
#534272
1   ...   172   173   174   175   176   177   178   179   ...   618
Bog'liq
Introduction-to-algorithms-3rd-edition

11.4
Open addressing
In
open addressing
, all elements occupy the hash table itself. That is, each table
entry contains either an element of the dynamic set or
NIL
. When searching for
an element, we systematically examine table slots until either we find the desired
element or we have ascertained that the element is not in the table. No lists and


270
Chapter 11
Hash Tables
no elements are stored outside the table, unlike in chaining. Thus, in open ad-
dressing, the hash table can “fill up” so that no further insertions can be made; one
consequence is that the load factor
˛
can never exceed
1
.
Of course, we could store the linked lists for chaining inside the hash table, in
the otherwise unused hash-table slots (see Exercise 11.2-4), but the advantage of
open addressing is that it avoids pointers altogether. Instead of following pointers,
we
compute
the sequence of slots to be examined. The extra memory freed by not
storing pointers provides the hash table with a larger number of slots for the same
amount of memory, potentially yielding fewer collisions and faster retrieval.
To perform insertion using open addressing, we successively examine, or
probe
,
the hash table until we find an empty slot in which to put the key. Instead of being
fixed in the order
0; 1; : : : ; m
1
(which requires
‚.n/
search time), the sequence
of positions probed
depends upon the key being inserted
. To determine which slots
to probe, we extend the hash function to include the probe number (starting from
0
)
as a second input. Thus, the hash function becomes
h
W
U
f
0; 1; : : : ; m
1
g ! f
0; 1; : : : ; m
1
g
:
With open addressing, we require that for every key
k
, the
probe sequence
h
h.k; 0/; h.k; 1/; : : : ; h.k; m
1/
i
be a permutation of
h
0; 1; : : : ; m
1
i
, so that every hash-table position is eventually
considered as a slot for a new key as the table fills up. In the following pseudocode,
we assume that the elements in the hash table
T
are keys with no satellite infor-
mation; the key
k
is identical to the element containing key
k
. Each slot contains
either a key or
NIL
(if the slot is empty). The H
ASH
-I
NSERT
procedure takes as
input a hash table
T
and a key
k
. It either returns the slot number where it stores
key
k
or flags an error because the hash table is already full.
H
ASH
-I
NSERT
.T; k/
1
i
D
0
2

Download 4,84 Mb.

Do'stlaringiz bilan baham:
1   ...   172   173   174   175   176   177   178   179   ...   618




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

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish