Cheatsheet — lineair zoeken
Snelle referentie. Klap open wat je nodig hebt.
Het algoritme zelf
De canonieke implementatie
def zoek(lijst, doel):
for i, waarde in enumerate(lijst):
if waarde == doel:
return i
return -1
Variant met range
def zoek(lijst, doel):
for i in range(len(lijst)):
if lijst[i] == doel:
return i
return -1
De bouwstenen
1. Door een lijst lopen
for waarde in lijst: # alleen waarden
...
for i, waarde in enumerate(lijst): # index + waarde
...
for i in range(len(lijst)): # alleen index
...
2. Vergelijken
==→ vergelijking (if x == 5)!=→ ongelijk (if x != 5)<,>,<=,>=→ andere vergelijkingen
3. Functie + return
def naam(parameter1, parameter2):
...
return iets # stopt de functie en geeft 'iets' terug
return stopt de functie direct — code erna wordt niet meer
uitgevoerd.
4. Toevoegen aan een lijst
resultaat = []
resultaat.append(42) # achteraan toevoegen
Eigenschappen
Wanneer werkt het?
- Op elke lijst — gesorteerd of niet.
- Op lijsten van strings, getallen, of wat dan ook, zolang
==betekenis heeft.
Hoe snel is het?
- Beste geval: doel staat vooraan → 1 vergelijking.
- Slechtste geval: doel staat achteraan of bestaat niet →
nvergelijkingen. - We zeggen: O(n) (lineair in de lengte).
Conventie voor "niet gevonden"
-1— duidelijk geen geldige index.- Of
None— Python-stijl. - Of
raise ValueError(...)— als je écht wil dat de aanroeper het merkt.
Veelgemaakte fouten (snel)
Top-3 fouten
return -1binnen defor-lus → returnt na 1 iteratie.=waar je==bedoelt →SyntaxErrorof stille bug.range(len(lijst) + 1)→IndexErrorop de laatste iteratie.
Klaar met lineair zoeken? Probeer nu binair zoeken → en zie hoeveel sneller het kan op een gesorteerde lijst.