Het complete algoritme
Leerdoel: je herkent alle bouwstenen die je hebt geleerd en ziet ze samen werken. Daarna onderzoek je het algoritme als geheel.
Alles samen
Hier is het hele algoritme, in 5 regels:
def zoek(lijst, doel):
for i, waarde in enumerate(lijst):
if waarde == doel:
return i
return -1
Zie je de bouwstenen terug?
- Regel 2 → bouwsteen 1: door de lijst lopen (met
enumeratevoor de index) - Regel 3 → bouwsteen 2: vergelijken met het doel
- Regel 4 → bouwsteen 3: index teruggeven bij match
- Regel 5 → bouwsteen 4:
-1teruggeven als niets is gevonden
Run
Code-omgeving wordt voorbereid…
Onderzoek
Speel met de code. Probeer in elk geval:
- Zoek een waarde die meerdere keren voorkomt. Welke index krijg je?
- Vervang de lijst door strings:
["appel", "peer", "kers"], doel"peer". Werkt het? - Wat gebeurt er als de lijst leeg is?
Code-omgeving wordt voorbereid…
Wat zie je?
0
1
-1
- Bij meerdere voorkomende waarden krijg je de eerste (index 0).
- Strings werken precies hetzelfde —
==vergelijkt ook strings. - Lege lijst → de
for-lus draait 0 keer → meteenreturn -1.
Lineair zoeken is type-onafhankelijk: het werkt op alles waar ==
betekenis heeft.
Een korte reflectie
We hebben in 4 kleine stappen iets gebouwd dat:
- ✅ Werkt op elke lijst, gesorteerd of niet.
- ✅ Werkt op getallen, strings, en alles met
==. - ✅ Heldere "niet gevonden"-conventie (
-1). - ⚠️ In het ergste geval alle elementen bekijkt — O(n).
Tijd om er iets anders van te maken.
Door naar stap 8: aanpassen →