Junior
İkili arama algoritması nasıl çalışır?
sobes.tech yapay zeka
AI'dan gelen yanıt
İkili arama, sıralanmış bir diziyi analiz ederek ve arama aralığını sürekli olarak ortadan bölerek çalışır.
- Başlatma: Arama aralığının sol ve sağ sınırları belirlenir (genellikle dizinin başlangıcı ve sonu).
- Karşılaştırma: Aralık ortasının indeksi hesaplanır. Bu indeksteki değer, aranan öğeyle karşılaştırılır.
- Aralığın küçültülmesi:
- Eğer ortadaki değer arananla uyuşuyorsa, öğe bulunmuştur.
- Eğer ortadaki değer aranan değerden büyükse, arama sol yarıda devam eder. Sağ sınır ortadan 1 azaltılır.
- Eğer ortadaki değer aranan değerden küçükse, arama sağ yarıda devam eder. Sol sınır ortadan 1 artırılır.
- Tekrar: 2 ve 3 adımları, öğe bulunana veya arama aralığı boşalana kadar tekrarlanır.
Algoritmanın karmaşıklığı O(log n) olup, büyük dizilerde doğrusal aramadan çok daha etkilidir.
Python'da örnek uygulama:
def binary_search(arr, target):
"""
İkili arama uygulaması.
Sıralanmış bir dizi ve aranan değeri alır.
Öğenin indeksini veya bulunamazsa -1 döner.
"""
left, right = 0, len(arr) - 1
while left <= right:
mid = (left + right) // 2 # Ortadaki indeks hesaplanır
mid_val = arr[mid] # Ortadaki değer alınır
if mid_val == target:
return mid # Öğe bulundu
elif mid_val < target:
left = mid + 1 # Aranan büyük, sağda arama
else: # mid_val > target
right = mid - 1 # Aranan küçük, solda arama
return -1 # Öğe bulunamadı