Bu algoritmanın neden çalıştığını açıklayın.
def ikili_arama(liste, hedef):
 alt = 0 
 üst = len(liste) - 1
 
 iken alt <= üst: 
 orta = (alt + üst) // 2 # Kat Bölümü
 tahmin et = liste[orta]
 tahmin edersen == hedef:
 tahmin edersen ortayı döndür
 tahmin edersen > hedef:
 üst = orta - 1
 else: 
 alt = orta + 1
 
 Hiçbiri döndür
Bu algoritma, böl ve fethet yaklaşımı kullanarak çalışır. Verilen listeyi iki parçaya bölerek başlar ve hedef öğe bulunana kadar listeyi tekrar tekrar ikiye bölerek ayarlanmış bir konum bulur. Bu yaklaşım avantajlıdır çünkü büyük ölçüde hedef değeri bulmak için gerekli karşılaştırma sayısını azaltır.Eğer eleman bulunamazsa aramanın üst ve alt sınırları eşitlenir yani eleman listede yoktur.Böylece algoritmanın hedefi bulması garanti edilir ( varsa) veya yoksa Yok'u döndür.