Binäre Suche in einem array
Verfasst: Montag 15. Mai 2017, 16:37
Hey ihr Lieben,
ich habe wieder mal eine Frage
mein Code sieht so aus:
bei den Anfangs- und Endwerten stimmt es, sobald ich aber zB nach 65 suchen lasse, ist es nicht mehr korrekt. Trotz debugger finde ich irgendwie meinen Fehler nicht... könnte mir da jemand einen Denkanstoß geben?
Liebe Grüße
ich habe wieder mal eine Frage
mein Code sieht so aus:
Code: Alles auswählen
a = [11,22,33,44,55,66,77] #meine Liste
x = 36#int(input("x = "))
mitte = len(a)//2 #die Mitte soll der int in der Mitte der Liste sein
links = 0 #wird festgesetzt
rechts = len(a) #ist das größte/letzte Element
while True: #damit er mir wieder die Schleife durchläuft
if x == a[mitte]: #damit weiß ich ja schon, dass x drin ist und es passt.
break
else: #hier scheints die Probleme zu machen
if x > a[mitte]:
links = mitte
else:
rechts = mitte - 1
mitte = (links + rechts) // 2
if x == a[links] or x == a[rechts - 1]: #bei Werten höher als 77 kommt er in eine Endlosschleife
print (x,"ist drin")
break
if rechts == links: #funktioniert für einige, aber nicht alle Werte
print ("ist nicht drin", x)
break
Liebe Grüße