İkili Arama (Binary Search) Algoritması Java

İkili Arama Algoritması, sıralanmış bir dizi içinde belirli bir değeri bulmak için kullanılan, programlamada etkili bir yöntemdir Java. Bu yaklaşım diziyi sürekli olarak iki parçaya böler ve arama değerini ortadaki elemanla karşılaştırır.

İkili Arama Algoritması Nasıl Çalışır?

İkili Arama Algoritması, arama değerini dizinin orta öğesiyle karşılaştırarak başlar. Arama değeri ortadaki elemana eşitse algoritma o elemanın konumunu döndürür. Arama değeri ortadaki elemandan küçükse algoritma aramaya dizinin sol yarısında devam eder. Arama değeri daha büyükse algoritma aramaya dizinin sağ yarısında devam eder. Bu işlem, aranan değer bulununcaya veya aranacak öğe kalmayıncaya kadar tekrarlanır.

İkili Arama Algoritmasının Avantajları ve Dezavantajları

Avantajları:

  • Yüksek Verimlilik: Bu algoritma, her adımda öğelerin yarısını ortadan kaldırarak büyük dizilerin aranmasını optimize eder.
  • Düşük Zaman Karmaşıklığı: Bu algoritmanın zaman karmaşıklığı O(log n) olup, onu büyük veri kümeleri için etkili kılar.

Dezavantajları:

  • Sıralanmış Dizi Gereksinimi: Algoritma yalnızca sıralanmış dizilerle çalışır.

Örnek ve Açıklama

içinde sıralanmış bir tam sayı dizisinde belirli bir tam sayıyı bulmak için İkili Arama Algoritmasını kullanmanın bir örneğini düşünün Java.

public class BinarySearchExample {  
    public static int binarySearch(int[] array, int target) {  
        int left = 0;  
        int right = array.length- 1;  
  
        while(left <= right) {  
            int mid = left +(right- left) / 2;  
  
            if(array[mid] == target) {  
                return mid; // Return position if found  
            } else if(array[mid] < target) {  
                left = mid + 1;  
            } else {  
                right = mid- 1;  
            }  
        }  
        return -1; // Return -1 if not found  
    }  
  
    public static void main(String[] args) {  
        int[] numbers = { 1, 3, 5, 7, 9, 11, 13, 15 };  
        int target = 9;  
  
        int position = binarySearch(numbers, target);  
  
        if(position != -1) {  
            System.out.println("Element " + target + " found at position " + position);  
        } else {  
            System.out.println("Element " + target + " not found in the array");  
        }  
    }  
}  

Bu örnekte, sıralanmış bir tamsayı dizisinde 9 sayısını bulmak için İkili Arama Algoritmasını kullanıyoruz. Algoritma dizi boyunca yinelenir ve arama değerini ortadaki değerle karşılaştırır. Bu durumda 9 sayısı dizide 4. pozisyonda(0 tabanlı indeks) bulunur.

Bu örnek, İkili Arama Algoritmasının sıralanmış bir tamsayı dizisindeki bir öğeyi nasıl bulabileceğini gösterse de, programlamadaki diğer arama senaryolarına da uygulanabilir Java.