İçeriğe geç

İkili arama algoritması (Binary Search)

Algorithm

Merhabalar bu yazımda İkili arama algoritması (Binary Search) Swift dili ile yazıp bilgi vereceğim.

İkili arama algoritması nedir ? diye soracak olursanız Parçala ve fethet yaklaşımını kullanan olayı daha küçük parçalar haaline getirip bulmaya çalışan algoritmadır. Bu algoritma veriyi bölerek büyüklük,küçüklüğüne göre yerini saptar. Tabiki lineer arama algoritmasından daha efektiv bir algoritmadır ve oldukça tanınmış algoritmalar arasındadır.

Algoritma bir dizi üzerinden örnek verecek olursam sürekli olarak ikiye bölme işlemi yapar ve ortadaki değer aranan değerden küçükse orta değeri ileri kaydırarak işleme devam eder. Eğer ortadaki değer büyük ise orta değeri ikiye bölerek işleme devam eder. Problemin çözümü log2(n) adımda gerçekleşir. Burada logaritmik fonksiyonların üssel fonksiyonların tersi olduğu için her adımda ikiye bölme işlemi gerçekleşir.

Aşağıda Swift ile yazdığım kodu inceleyip deneyebilirsiniz.

Kodu örnek üzerinde inceleyecek olursak.

Gördüğünüz gibi Dizinin 6.indisinde bulunan değer 4 adıma bulunmuş oldu. Eğer lineer olarak arama yapsaydık 7 adımda incelenmiş olacaktı.

Github link.

Tarih:AlgorithmSwift

Bu yazı yorumlara kapalı.

© 2020 Kenan Atmaca