İkili arama mantığı
- Algoritmalar kursu
- Başlangıç
- Ders 53/80
- 4 dk
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
def binary_search(arr, target):
# İkili araÖrnek çözüm
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
İkili arama ____ zamanda çalışır.
İ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 |