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
- Regel 2:
Bouwsteen 1 — door de lijst lopen.
enumerategeeft je elke ronde de index én de waarde tegelijk. - Regel 3:
Bouwsteen 2 — vergelijken met het doel.
- Regel 4:
Bouwsteen 3 — de index teruggeven bij een match.
returnstopt meteen de functie én de lus: verder zoeken is niet meer nodig. - Regel 5:
Bouwsteen 4 — deze regel wordt alleen bereikt als de lus afloopt zonder match. Let op de inspringing: hij staat buiten de
for, op functie-niveau.
Run
Interactief model
Lineair zoeken
Loop van links naar rechts tot je het doel vindt.
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?
Wat zie je?
0
1
-1
- Staat een waarde meerdere keren in de lijst, dan krijg je de eerste.
- Strings werken precies hetzelfde —
==vergelijkt ook strings. - Bij een lege lijst draait de
for-lus nul keer en volgt meteenreturn -1.
Lineair zoeken is type-onafhankelijk: het werkt op alles waar ==
betekenis heeft.
Door naar aanpassen.