Binary Search Algoritm

Anar Məmmədov
3 min readNov 20, 2020

İkili Axtarış Alqoritması.

Binary Search alqoritm nə deməkdir və onun işləmə prinsipi və mahiyyəti nədən ibarətdir?

Binary Search.

Binary Search(İkili Axtarış) alqoritması axtarış alqoritmalarından biridir. Təyin olunmuş data içərisindən sizin həmən data içərisində, axtarmaq istədiyiniz datanı tapıb qarşınıza çıxardır. Binary Search(İkili Axtarış), Linear Search-ə nəzərən daha sürətli və daha effektli axtarış alqoritmasıdır. Sürətli effektli olmasına səbəb hərdəfə verilmiş axtarış aralığını tən yarıya bölüb ortada qalan datanı, bizim data içərisində axtarmaq istədiyimiz data ilə müqayisə edir, müqayisə doğrudursa axtarış uğurla sonlanır, əks təqdirdə yenədə digər aralıqlarda axtarışlar davam edir və bu şəkildə tapmaqla axtarış edir. Binary Search(İkili Axtarış) yalnız və yalnız sıralı elementlər arasında axtarış etmə qabiliyyətinə malikdir, əks təqdirdə axtarış işləməyəcəkdir. Biz bu məqalədə bu alqoritmanı massivlər üzərində öyrənəcəyik.

Binary Search(İkili Axtarış) necə işləyir?

Təsəvvür edin, sizin bir massiviniz vardır və onun içərisində sıralı şəkildə elementlər vardır. Bu massivin elementlərinin sayı 6-dır, yəni siz, proqramınız da bir massiv yaratmısınız və onun ölçüsünü 6 olaraq qeyd etmisiniz. Şəkil-1-də göstərilmişdir.

Şəkil-1.

Məsələn bizim, massiv içərisin də axtarmaq istədiyimiz ədəd 4-dür. Binary Search(İkili Axtarış), bizə axtarmaq istədiyimizi massiv içərisində tapmaq istədiyim datanı ortalığa çıxartmaq üçün əvvəlcə bu mərhələləri yerinə yetirir.

a) İlk öncə massivin sol sağ indeksləri qeyd olunur.

b) Daha sonra isə massivin orta indeksi tapılır ki, massivi tən ortadan kəsib sol sağ aralıqlarda orta indeksə görə axtarış aparıla bilinsin.

c) Verilmiş aralığın ortasının tapılması düsturu orta=(sol+sağ)/2 ilə tapılır.

d) Əgər axtardığımız dəyər, massivin ortasında yerləşən dəyərdən kiçikdirsə, o zaman axtarış massivin sol aralığında baş verəcəkdir.

e) Əgər axtardığımız dəyər, massivin ortasında yerləşən dəyərdən böyükdürsə, o zaman axtarış massivin sağ aralığında baş verəcəkdir.

f) Sonda isə hər gedişatda axtardığımız ədəd hər dəfəsində massivin ortasından alınan dəyər ilə müqayisə olunaraq tapılır.

Şəkil-2.

Ola bilər ki, bəxtiniz gətirə ilk gedişdə axtardığınız ədəd massivin ilk orta indeksində yerləşə və bu 1 proseslə uğurlar nəticələnər, lakin bizim axtarmaq istədiyimiz ədəd isə 4 olduğuna görə gördüyünüz kimi axtarmaq istədiyimiz ədəd hələki ortada duran ədəddən böyükdür. Əgər böyükdürsə deməli ortada duran ədəddən əvvəl gələn dəyərlərin hamısından böyükdür. O zaman Binary Search(İkili Axtarış) sağ aralığda işini davam etdirəcəkdir.

Şəkil-3.

Gördüyünüz kimi, bu dəfəki ortada duran dəyər ilə, bizim axtarmaq istədiyimiz dəyər müqayisə baxımından fərqlidir, bərabər deyil. Bu dəfə isə axtarmaq istədiyimiz data, yeni tapılan ortada duran datadan kiçikdir, o zaman artığ Binary Search(İkili Axtarış) sol aralığda işini davam etdirəcəkdir. Yəni aşağıdakı şəkildə göstərildiyi kimi.

Şəkil-4.

Artıq biz əminliklə bilə-bilərik ki, axtarmaq istədiyimiz ədəd ortada duran ədədlə bərabərdir, yəni bu o deməkdir ki, axtarmaq istədiyimiz ədəd tapıldı. Bunu belə şəkil ilə öyrənməkdə məqsəd Binary Search(İkili Axtarış) işləmə prinsipini öyrənmək idi.

Binary Search(İkili Axtarış) kod ilə yazılışı:

Şəkil-5.

Algoritmanın kod şəklində yazılışı linki: https://pastebin.com/trvG55cg

--

--

Anar Məmmədov

Java Backend Web Developer wondering RDBMS and processing of structure any technology that is related backend.