Deacon Mesaj tarihi: Aralık 18, 2009 Paylaş 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? Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
Deacon Mesaj tarihi: Aralık 18, 2009 Konuyu açan Paylaş 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. Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
Helcaraxe Mesaj tarihi: Aralık 18, 2009 Paylaş 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" Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
Deacon Mesaj tarihi: Aralık 18, 2009 Konuyu açan Paylaş Mesaj tarihi: Aralık 18, 2009 döngünün koşulunundaki eşitliği kaldırıp left Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği… Paylaş Daha fazla paylaşım seçeneği… Takipçiler 0
Öne çıkan mesajlar