Binar axtarış

Vikipediya, açıq ensiklopediya
Keçid et: naviqasiya, axtar
Nuvola apps kate.png
Bu məqalə hələlik qaralama halındadır. Məqaləni redaktə edərək Vikipediyanı zənginləşdirin.

بومقاله هله لیک قارالاما حالیندادیر، مقاله نی تکمیل اتمه ایله ویکیپدیا نی زنگینلشدیرین


Etdiyiniz redaktələri mənbə və istinadlarla əsaslandırmağı unutmayın.
Lütfən bu şablonu daha dəqiq şablonla əvəz edin

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. Onun yerinə Binar axtarışdan vəya Qabarcıq axtarışından (Bubble sort algoritm) istifadə edilir. Binar axtarışı qısaca belə izah etmək olar:

Tutaq ki, bizdə uzunluğu 1000 olan massiv var. Massivin elemetləri artma ardıcıllığı ilə düzülmüş rəqəmlərdir. Bu massivdə verilmiş n ədədini axtarmaq lazımdır.

İndi deyəcəksiniz ki dövr operatoru ilə bir-bir elementləri yoxlamaq olar. Bu belədi. Amma masivin uzunluğu çox olanda buna çox da vaxt sərf olunur. Ona görə daha yaxşı üsul binar(ikili) axtarışdır. Buna ətraflı baxaq.

Bir misala baxaq. Tutaq ki, massivimizin uzunluğu 11-dir. Və elementləri bu şəkildədir. 2, 7, 24, 26, 45, 98, 102, 302, 422, 598, 603. Elementlər mütləq artma və ya azalma ardıcıllığı ilə olmalıdır. İndi bu misalda 302 ədədini axtaraq.

Bunun üçün biz axtarışa 1-ci elementlə deyil, massivin orta elementi yəni, bizim misalda 6-cı(98) ilə başlayırıq. Belə ki, əgər ədəd 98-dən kiçikdirsə onda ikinci dəfə 98 ilə 2 arasında, yox əgər axtardığımız ədəd 98-dən böyükdürsə onda 98 ilə 603 arasında axtarılır. Belə ki, bizim axtardığımız ədəd yəni 302 ədədi 98-dən böyük olduğuna görə, ikinci dəfə 98 ilə 603 ədədləri arasında axtarılır. Və yenə bu hissədəki ortadakı ədədlə yəni 302 ilə yoxlanılır. Və budur ədəd tapıldı.

Ədədi axtarmaq üçün cəmisi 2 dəfə axtardıq. Çox tez oldu elə deyilmi? Amma əgər dövr operatoru ilə axtarsaydıq ən azı(sağdan başlasaydıq) 4-cü dəfə tapacaqdı.