CodeBlanks Logo Icon CodeBlanks

İkili arama mantığı

Sıralı dizide aralığı her seferinde ikiye bölerek O(log n) arama yapmayı öğrenirsin.

İkili arama mantığı

İkili arama, sıralı bir dizide hedefi O(log n) zamanda bulur. Her adımda arama alanını ikiye böler.

Önce orta elemanı kontrol eder. Hedef orta elemana eşitse bulundu. Küçükse sol yarıda, büyükse sağ yarıda arar.

Sıralı olma şartı

İkili arama yalnızca sıralı dizilerde çalışır. Sırasız bir dizide orta eleman hangi yarıda arama yapacağını söyleyemez.

Bu yüzden ikili arama kullanmadan önce diziyi sıralamalısın. Sıralama O(n log n) olduğu için tek aramada doğrusal arama daha iyi olabilir.

Uygulama İkili arama

binary_search(arr, target) yaz. Sol-sağ gösterici ile ara. print(binary_search([1, 3, 5, 7, 9], 7)) ile 3 yazdır.

Başlangıç kodu

solution.py
def binary_search(arr, target):
    # İkili ara

Örnek çözüm

solution.py
def binary_search(arr, target):
    # İkili ara
    left = 0
    right = len(arr) - 1
    while left <= right:
        mid = (left + right) // 2
        if arr[mid] == target:
            return mid
        elif arr[mid] < target:
            left = mid + 1
        else:
            right = mid - 1
    return -1
print(binary_search([1, 3, 5, 7, 9], 7))

Beklenen çıktı

3

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 İkili arama hangi dizide çalışır?

  • Sadece boş
  • Sadece sıralı Doğru cevap
  • Sadece sırasız
  • Herhangi bir dizi

Açıklama: Sadece sıralı dizilerde çalışır.

2 Karmaşıklık

Soru
İkili arama ____ zamanda çalışır.
Cevap
İkili arama O(log n) zamanda çalışır.

Açıklama: O(log n) doğru.

3 İkili arama mantığı: kavramları eşleştir

Kavram Anlamı
İkili arama Sıralı dizi
O(log n) Hız
Orta eleman Bölme
Sıralı Şart

Başlangıç bölümündeki tüm dersler