Rekursive Funktion
Code: Alles auswählen
def maximum(a,p): #Liste a mit Länge p (len(a)=p)
if p==1 : #ist nur ein Element in der Liste
return a[0]
else:
maxi = max(a[1:p+1]) #Suche maximum von a[1] bis a[p]
if a[0] > maxi : #prüfe ob gefundenes Element a[maxi] > a[0] ist
return a[0]
else:
return maxi
@StareDog: das ist keine Rekursive Funktion, weil maximum ja nirgends aufgerufen wird, fasst man die vielen if-Blöcke zusammen, ergibt sich nämlich:
Code: Alles auswählen
def maximum(a,p):
return max(a[:p+1])
da hast du natürlich recht, blödsinn.
was haltet ihr von dieser Lösung? Ist das eine rekursive Funktion und was hättet ihr noch für bessere lösungsansätze. Hab jetzt die schlechte Lösung abgegeben, weil ich keine Zeit mehr hatte, aber mich gerade nochmal rangesetzt um zu verstehen wie es besser gehen könnte.
was haltet ihr von dieser Lösung? Ist das eine rekursive Funktion und was hättet ihr noch für bessere lösungsansätze. Hab jetzt die schlechte Lösung abgegeben, weil ich keine Zeit mehr hatte, aber mich gerade nochmal rangesetzt um zu verstehen wie es besser gehen könnte.
Code: Alles auswählen
a = [5,6,7,2,3,2,5,3,7,3,2,7,8]
def maximum(a,p):
if p<0:
raise ValueError("cannot find maximum of an empty sequence")
elif p==0:
return a[p]
else:
if maximum(a,p-1)<a[p]:
return a[p]
else:
return maximum(a,p-1)
print(maximum(a,1))
Code: Alles auswählen
if maximum(a,p-1)<a[p]:
return a[p]
else:
return maximum(a,p-1)
Code: Alles auswählen
a = [5,6,7,2,3,2,5,3,7,3,2,7,8]
def maximum(a,p):
if p<0:
raise ValueError("cannot find maximum of an empty sequence")
elif p==0:
return a[p]
else:
b = maximum(a,p-1)
if maximum(a,p-1)<a[p]:
return a[p]
else:
return b
print(maximum(a,6))
Code: Alles auswählen
a = [5,6,7,2,3,2,5,3,7,3,2,7,8]
def maximum(a,p):
if p<0:
raise ValueError("cannot find maximum of an empty sequence")
elif p==0:
return a[p]
else:
b = maximum(a,p-1)
c = a[p]
if b<c:
return c
else:
return b
print(maximum(a,6))