Auf Seite 186 und 187 erklärt er, wie ein rekursiver Suchalgorithmus aussehen kann. Ich verstehe dort nicht, worin der Vorteil eines solchen Verfahrens gegenüber einer Variante besteht, die einfach prüft, ob jedes Element einer Liste zur Vorwahl passt.
Ich habe den Quellcode etwas angepasst, um eine Zählschleife zu implementieren.
Code: Alles auswählen
zahl = 0
def suche(num, vorwahl):
global zahl
zahl += 1
print(num, zahl)
if len(num) == 1:
if num[0][:len(vorwahl)] == vorwahl:
return num
else:
return []
else:
return suche(num[:len(num)//2], vorwahl)+\
suche(num[len(num)//2:], vorwahl)
nummernliste = ['0223 788834',
'0201 566722',
'0224 66898',
'0201 899933',
'0208 33987']
Code: Alles auswählen
print(suche(nummernliste, "0201"))