İkili arama
Sıralı listede ortadaki değere bakarak her adımda arama aralığını yarıya indiririz.
13+ yaş · 25 dakika · Python 3
İnteraktif atölyede aç →Neler öğreneceğiz?
Sıralı listede ortadaki değere bakarak her adımda arama aralığını yarıya indiririz.
Bu çalışma gerçek donanım gerektirmeyen bir Python 3 programıdır. Önce sonucu tahmin et, sonra kodu kendi bilgisayarındaki uygun ortamda çalıştır. Uygulama kodu gösterir; cihaz üzerinde Python veya C++ çalıştırıcısı değildir.
Malzeme listesi
- Bilgisayar
- Python 3 çalışma ortamı
- Kâğıt ve kalem
Adım adım yapalım
- Verilen başlangıç değerlerini bul ve kâğıda yaz.
- Kod satırlarını sırayla izle; her değişkenin yeni değerini not et.
- Python kodunu bir .py dosyasına kaydedip Python 3 ile çalıştır.
- Çıktıyı aşağıdaki beklenen sonuçla karşılaştır.
- Sıra sende görevini yap; tek değişikliği test edip sonucu yaz.
Kod · Python 3
v = [2, 4, 6, 8, 10, 12]
sol, sag, sonuc = 0, len(v) - 1, -1
while sol <= sag:
orta = (sol + sag) // 2
if v[orta] == 10:
sonuc = orta
break
if v[orta] < 10:
sol = orta + 1
else:
sag = orta - 1
print(sonuc)
Kod nasıl çalışır?
Sıralı listede ortadaki değere bakarak her adımda arama aralığını yarıya indiririz.
Girintiler aynı işlem grubundaki satırları belirler. print() hesaplanan değeri ekrana yazar.
Beklenen sonuç
4
Sıra sende
Liste sıralı değilse neden güvenilmez sonuç verir?
Güvenli atölye
Bu çalışma bir yazılım modelidir; motor, güç kaynağı veya gerçek güvenlik sistemi kontrol etmez.
Çalışmıyorsa kontrol et
- Yazım, parantez ve tırnakları kontrol et.
- Beklenen çıktı bu dersteki sabit başlangıç değerleri içindir; değerleri değiştirince sonuç da değişebilir.
- Liste indeksleri sıfırdan başlar; boyutu aşan indeks kullanma.