Ga naar hoofdinhoud

Cheatsheet — vind het maximum

Snelle referentie. Klap open wat je nodig hebt.

Het algoritme zelf

Canonieke implementatie
def vind_maximum(lijst):
maximum = lijst[0]
for waarde in lijst:
if waarde > maximum:
maximum = waarde
return maximum
Variant met enumerate (ook index bijhouden)
def vind_index_van_maximum(lijst):
max_index = 0
for i, waarde in enumerate(lijst):
if waarde > lijst[max_index]:
max_index = i
return max_index
Variant: minimum vinden
def vind_minimum(lijst):
minimum = lijst[0]
for waarde in lijst:
if waarde < minimum:
minimum = waarde
return minimum

Eén teken verschil met vind_maximum (><).

Het accumulator-patroon

Algemeen recept
accumulator = startwaarde_van_eerste_element
for waarde in lijst:
if <iets bijzonders aan waarde>:
accumulator = <update>
return accumulator

Gebruikt voor: maximum, minimum, som, product, aantal-tellen, …

Python-syntax

Toekennen vs. vergelijken
  • = → toekennen (x = 5)
  • == → vergelijken (if x == 5)
  • <, >, <=, >=, != → andere vergelijkingen
Slicing (deel van een lijst)
lijst[1:] # alles vanaf index 1
lijst[:3] # alles tot (niet inclusief) index 3
lijst[1:3] # index 1 en 2
lijst[-1] # laatste element
lijst[::-1] # omgedraaide lijst
enumerate — index én waarde
for i, waarde in enumerate(lijst):
print(i, waarde)
Python heeft een ingebouwde max()
print(max([3, 7, 2, 9, 4])) # 9
print(max([])) # ValueError
print(max("hallo")) # 'o'

In productie-code gebruik je vaak gewoon max() van Python. Maar de oefening is om hem zelf te bouwen — zodat je het patroon snapt.

Eigenschappen

Wanneer werkt het?
  • Op niet-lege lijsten.
  • Op alles dat onderling vergeleken kan worden met < en > (getallen, strings, tuples).
  • Niet op gemengde types (1 versus "twee"TypeError).
Hoe snel?
  • Elke positie wordt één keer bekeken.
  • n elementen → n − 1 vergelijkingen (of n als je lijst[0] ook meedoet).
  • O(n).
Lege-lijst-keuze
  • Return None → "geen maximum bestaat".
  • raise ValueError → aanroeper móet ermee dealen.
  • Geen check → crash met IndexError. Niet doen in productie-code.

Veelgemaakte fouten (snel)

Top-3 fouten
  1. maximum = 0 als startwaarde → mist negatieve lijsten.
  2. max als variabelenaam → schaduwt de ingebouwde max().
  3. Geen lege-lijst-check → IndexError bij lijst[0].

Klaar? Probeer ook max én min in één pass → — hetzelfde patroon, twee keer tegelijk.