Binar axtarış
Vikipediya, açıq ensiklopediya - ویکیپدیا ، آچیق انسایکلوپدیا
بومقاله هله لیک قارالاما حالیندادیر، مقاله نی تکمیل اتمه ایله ویکیپدیا نی زنگینلشدیرین
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ı.