Stellingen — toets je begrip
Leerdoel: je toetst of je het idee van "onthouden en updaten" snapt voordat je gaat programmeren.
Stelling 1
"Je moet eerst de hele lijst sorteren om het maximum te vinden."
Antwoord
Onjuist. Sorteren kost veel werk (O(n log n)) en is niet nodig — je hoeft alleen één keer door de lijst te lopen om het maximum te vinden (O(n)). Sorteren is overdreven.
Stelling 2
"Je hebt minstens n vergelijkingen nodig om het maximum te vinden in
een lijst van n elementen."
Antwoord
Onjuist — je hebt er één minder nodig. Met n − 1 vergelijkingen
kan het al: het eerste element is je startwaarde (geen vergelijking nodig),
en daarna vergelijk je elk van de overige n − 1 elementen ermee.
Minder kan niet — anders weet je niet zeker of het overgeslagen element niet groter was.
Stelling 3
"Als je max_tot_nu_toe = 0 als startwaarde kiest, werkt het algoritme
op elke lijst."
Antwoord
Onjuist. Op een lijst met enkel negatieve getallen krijg je dan
0 als antwoord — terwijl 0 niet eens in de lijst staat. Bijvoorbeeld
[-3, -1, -7]: het echte maximum is -1, maar je algoritme zou 0
returnen.
Veilige startwaarde: lijst[0] (het eerste element). Dat is gegarandeerd
ook echt een waarde uit de lijst.
Stelling 4
"Als de waarde meerdere keren voorkomt (bijv. [5, 3, 5, 2]), is het
maximum nog steeds gewoon 5."
Antwoord
Juist. Het maximum is gewoon de grootste waarde — duplicaten doen er niet toe. Welke index je krijgt als je vraagt om de index van het maximum hangt wel af van je code (meestal: de eerste, soms de laatste). Maar de waarde is altijd hetzelfde.
Stelling 5
"Op een gesorteerde lijst kun je het maximum direct vinden zonder door de hele lijst te lopen."
Antwoord
Juist. Op een oplopend gesorteerde lijst is het maximum gewoon
lijst[-1] (het laatste element). Eén vergelijking? Zelfs geen
vergelijking — alleen een index-lookup. Voor zo'n lijst is dit algoritme
overdreven.
Pas als je niet weet of de lijst gesorteerd is, moet je hem helemaal doorlopen.
Stelling 6
"Je kunt dit algoritme ook gebruiken om de kleinste waarde te vinden, door alleen een symbool aan te passen."
Antwoord
Juist. Vervang > door < (en hernoem max_tot_nu_toe naar
min_tot_nu_toe) en je hebt vind-minimum. Het accumulator-patroon is
symmetrisch.
Daar gaan we bij Aanpassen concreet mee oefenen.
Door naar stap 3: we bouwen het op →