Die erste Zweiteilung. 161P des Algorithmus-Bilderbuchs, geschrieben in C-Sprache für Python auf Ihre eigene Weise. Es funktioniert nicht, wenn Sie eine Nummer eingeben, die nicht in der Liste enthalten ist. Es wird davon ausgegangen, dass die Nummern in der Liste in aufsteigender Reihenfolge angeordnet sind.
nibun.py
#!/usr/bin/env python
# -*- coding: utf-8 -*-
x = [1, 8, 14, 23, 44, 55, 67, 88, 103, 146]
print x
print "Geben Sie die Nummer ein, die Sie suchen möchten"
i = int(raw_input())
low = 0
high = len(x)
#t ist die mittlere Zahl
t = (low + high) / 2
#Suchen, bis die untere Untergrenze der Suche zur oberen Obergrenze wird
#Wenn niedrig hoch erreicht, wurde die Zahl nicht gefunden
while (low<=high):
if (i==x[t]):
break
elif (i > x[t]):
low = t + 1
elif (i < x[t]):
high = t - 1
t = (low + high) / 2
if (i==x[t]):
print str(t + 1) + "Ist in der zweiten"
else:
print "Da ist gar nichts"
Recommended Posts