Wie prognostizieren Sie die Anzahl der Iterationen, die erforderlich sind, um eine Zahl zu finden, die der Benutzer in die binäre Suche eingeben würde?Wie prognostizieren Sie die Anzahl der Iterationen, die für eine binäre Suche erforderlich sind?
def find(list, x):
numIter=0
a = 0
b = len(list) - 1
while a < b:
numIter+=1
c = (a + b) // 2
if list[c] <x:
a = c + 1
else:
b = c
return numIter
if list[b] == x
return b + 1
else:
return -1
print(find([1,2,4,5,8,9,11,12,13,14,15,16,17], 10))
Der gleiche Weg, den Sie irgendeine andere Zahl anzeigen würden? Nicht wirklich! Was fragst du wirklich? Fragen Sie, wie Sie 'numIter' von Ihrer' find() 'Funktion zurückgeben? Fragen Sie, wie die Anzahl der erforderlichen Iterationen _predict_ wird? –
Vorhersage der Anzahl der Iterationen, die benötigt werden und zeigen nur die Anzahl der Iterationen – piteer
Ich glaube nicht, dass Sie tatsächlich eine Eingabe und _predict_ nehmen können, wie viele Iterationen es für eine binäre Suche dauern würde, ohne tatsächlich die binäre Suche durchzuführen ... dies klingt ein wenig wie [das Halteproblem] (https://en.wikipedia.org/wiki/Halting_problem) – AetherUnbound