1.7 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…
Interactief model
Lineair zoeken
Loop van links naar rechts tot je het doel vindt.
Bron referentieStap 0/5Vergelijkingen 0Resultaat -
03
11
24
31
45
59
62
76
Start
We zoeken 5 van links naar rechts.
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
==. - Een heldere "niet gevonden"-conventie heeft (
-1). - In het ergste geval alle elementen bekijkt — O(n).
Tijd om er iets anders van te maken.
Door naar stap 8: aanpassen.