İkili axtarış alqoritmi

Vikipediya, açıq ensiklopediya
(Binar axtarış səhifəsindən istiqamətləndirilmişdir)
Keçid et: naviqasiya, axtar

İkili(Binar) axtarış (ing. Binary search) — Sıralanmış massivdə müəyyən qiymətin axtarılması alqoritmidir. Xətti axtarışdan fərqli olaraq Binar axtarış sıralanmış massivlər üzərində daha tez axtarış aparmağa imkan verir. Xüsusilə böyük həcmli verilənlər bazasına sahib proqramlarda xətti axtarış texniki olaraq çox vaxt tələb etdiyindən yaramır.

İşləmə prinsipi[redaktə]

Alqorimtin işləməsi üçün ilk öncə massiv sıralanmış olmalıdır. Bu üsul ilə axtarış zamanı axtarılan məlumat massivin ortadakı elementi ilə müqayisə edilir. Əgər axtarılan ədəd ortadakı elementdən böyükdürsə o zaman, həmin ədəddən kiçik hissələr unudulur və axtarış böyük olan hissədə aparılır və ya əksinə. Hər belə müqayisədə axtarış yarıya endirilir.

Nümumə[redaktə]

a = axtarılan ədəd, M = massiv


a = 4, M = 1 3 4 6 8 9 11


a ilə 6-ı müqayisə et. Kiçikdir. Axtarışı M = 1 3 4 ilə apar.


a ilə 3-ü müqayisə et. Böyükdür. Axtarışı M = 4 ilə apar.


a ilə 4-ü müqayisə et. Bərabərdir. Axtarış tamamlandı, a tapıldı.

C proqramlaşdırma dilində təsviri[redaktə]

int massiv[7] = {1, 3, 4, 7, 10, 12, 15}; 
int axtarilan = 12; 
int bas = 0; 
int son = 6; 
int i;
 while (bas <= son) 
{ i = (bas + son)/2;
 if (massiv[i] == axtarilan)
 return i; 
else if (massiv[i] > axtarilan)
 son = i - 1; 
else bas = i + 1; }
 return (-1); // tapılmadı

Həmçinin bax[redaktə]