Sobes.tech
Junior — Middle

İkili arama algoritmasının çalışma prensibini ve özelliklerini açıklayınız.

sobes.tech yapay zeka

AI'dan gelen yanıt

İkili arama algoritması, sıralanmış bir dizi veya listede bir öğe aramak için kullanılır. Prensibi:

  1. Dizinin ortadaki öğesi belirlenir.
  2. Aranan öğe ortadaki öğeye eşitse, arama tamamlanır.
  3. Eğer aranan öğe ortadaki öğeden küçükse, arama dizinin sol yarısında devam eder.
  4. Daha büyükse, sağ yarısında devam eder.
  5. Bu süreç, öğe bulunana veya arama aralığı tükenene kadar yinelenir veya yinelemeli olarak tekrarlanır.

Özellikler:

  • Sadece sıralanmış verilerle çalışır.
  • Karmaşıklık — O(log n), doğrusal aramadan çok daha hızlıdır.
  • İndeks kullanılarak öğelere erişim gerektirir (örneğin, dizi).

Swift'te örnek:

func binarySearch(_ array: [Int], _ target: Int) -> Int? {
    var left = 0
    var right = array.count - 1
    
    while left <= right {
        let mid = (left + right) / 2
        if array[mid] == target {
            return mid
        } else if array[mid] < target {
            left = mid + 1
        } else {
            right = mid - 1
        }
    }
    return nil
}

let numbers = [1, 3, 5, 7, 9]
if let index = binarySearch(numbers, 7) {
    print("Eleman bulunduğu pozisyon \(index)")
} else {
    print("Eleman bulunamadı")
}