💻 Programmeeroefening – Plaats één element op de juiste plek (Insertion sort stap)
In deze oefening ga je één stap uitvoeren van het sorteeralgoritme insertion sort.
Je krijgt een lijst waarin een deel al gesorteerd is van klein naar groot. Het laatste deel is nog niet goed geplaatst.
Jouw taak: zorg ervoor dat één element op de juiste plaats terechtkomt in het gesorteerde deel.
🧠 Idee achter de oefening
Stel je de lijst voor als een rij leerlingen:
- De leerlingen voor een bepaalde positie staan al netjes op volgorde (gesorteerd).
- De leerling op
positie_zittendstaat nog niet op zijn juiste plaats.- Die leerling moet “naar links schuiven” tot hij op de juiste plek staat.
🛠 Wat moet je doen in de functie?
Schrijf een functie:
wissel_tot_juiste_plaats(rij, positie_zittend)Die doet het volgende:
Kijk naar het element op index
positie_zittend. 👉 Dit is het element dat nog niet op zijn juiste plaats staat.Vergelijk dit element met de elementen ervoor (dus met kleinere indexen).
- Zolang het element:
- niet helemaal vooraan staat, én
- kleiner is dan het element ervoor,
dan moet je het verwisselen met het element ervoor.
- Herhaal dit totdat het element op zijn juiste plaats staat in het gesorteerde deel.
🔁 Belangrijk om te begrijpen
- Je past de lijst zelf aan (je maakt geen nieuwe lijst).
- Je werkt alleen met het stuk links van
positie_zittend+ dat ene element.- Alles links van dat stuk is al correct gesorteerd en mag je als “kloppend” beschouwen.
🔧 Hulpfunctie die je mag gebruiken
Je mag elementen van plaats wisselen met deze functie:
def wissel(lijst, index1, index2): tijdelijk = lijst[index1] lijst[index1] = lijst[index2] lijst[index2] = tijdelijk
📌 Voorbeelden uitgelegd
👉 Voorbeeld 1:
wissel_tot_juiste_plaats([20, 40, 10, 30], 2)
- Het element op index 2 is
10- Links ervan staat
[20, 40](dit is al gesorteerd)10moet helemaal naar voren schuivenResultaat:
[10, 20, 40, 30]
👉 Voorbeeld 2:
wissel_tot_juiste_plaats([20, 40, 10, 30], 1)
- Het element op index 1 is
40- Links staat
[20]40staat al op de juiste plaats → er gebeurt nietsResultaat:
[20, 40, 10, 30]
💡 Tip: denk niet “sorteren van de hele lijst”, maar enkel “één leerling op de juiste plaats zetten in een al nette rij”.