Deacon Mesaj tarihi: Aralık 18, 2009 Mesaj tarihi: Aralık 18, 2009 A = [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,21] aranan = int(input("aranacak sayi :" )) mid = int(len(A)/2) right = len(A) left = 0 found = 0 while left <= right and found == 0: if A[mid] == aranan: found = 1 else: if aranan < A[mid]: right = mid - 1 mid = int((left + right) /2) else: left = mid + 1 mid = int((left + right) /2) if found: print("Listenin ", mid+1,". elemani ", aranan, "sayisina esittir") else: print("bulunamadi") şöyle bir şey yazdım. fakat listenin son elemanından daha büyük bir sayı aramaya çalışınca if A[mid] == aranan: satırında "index out of range" hatası alıyorum. aradığım sayıyı diziye index olarak kullanmıyorum ki hiçbir yerde, neden böyle oluyor?
Deacon Mesaj tarihi: Aralık 18, 2009 Konuyu açan Mesaj tarihi: Aralık 18, 2009 soruyu tam açıklayayım. mesela A listesinin son elemanını 50 yaparsam, 48'i aradığımda normal bir şekilde bulunamadı diyor. ammavelakin son elemanı 20 yaparsam. 48'i aradığımda o hatayı alıyorum. of çıldırcam.
Helcaraxe Mesaj tarihi: Aralık 18, 2009 Mesaj tarihi: Aralık 18, 2009 = [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,21] aranan = int(input("aranacak sayi :" )) mid = int(len(A)/2) right = len(A) left = 0 found = 0 while left <= right and found == 0: if A[mid] == aranan: found = 1 else: if aranan < A[mid]: TOO BAD IT'S ME BLACKSMITH!!! else: left = mid + 1 mid = int((left + right) /2) if found: print("Listenin ", mid+1,". elemani ", aranan, "sayisina esittir" else: print("bulunamadi"
Deacon Mesaj tarihi: Aralık 18, 2009 Konuyu açan Mesaj tarihi: Aralık 18, 2009 döngünün koşulunundaki eşitliği kaldırıp left Paylaş https://forum.paticik.com/topic/4515747-binary-search-python/ Daha fazla paylaşım seçeneği… Takipçiler 0
Öne çıkan mesajlar