❗ Begrip – Sorteeralgoritmes

Sorteeralgoritmes zijn algoritmes die een geordende collectie (vaak een lijst) sorteren. Met sorteren bedoelen we hier het ordenen van de elementen van de collectie volgens grootte.

We ordenen de elementen volgens grootte, maar wat is de grootte van een element? Bij getallen is het duidelijk: de getalwaarden zelf. Voor strings worden ze in Python (en de meeste programmeertalen) vergeleken op basis van het alfabet. Als we een lijst met strings van klein naar groot sorteren, sorteren we die alphabetisch.

Met andere woorden: de string "oscar" is groter dan de string "charlie" omdat de “o” achter de “c” komt in het alfabet.

Bij het ordenen hebben we steeds de keuze om van klein naar groot of van groot naar klein te sorteren. In onze voorbeelden sorteren we altijd van klein naar groot.

👀 Voorbeeld - Ingebouwde sorteerfunctie

Python heeft een ingebouwde sorteermethode lst.sort() voor lijsten (hierbij is lst een willekeurige lijst):

lijst = [50, 20, 30, 10, -5]
print("Voor het sorteren is lijst gelijk aan", lijst)
lijst.sort()
print("Na het sorteren is lijst gelijk aan", lijst)

Verander één of meerdere waarden om te controleren of de lijst inderdaad altijd gesorteerd wordt. Voeg ook eens extra elementen toe of laat er weg.

In dit hoofdstuk bespreken we drie sorteeralgoritmes:

Het doel is om aan te tonen dat er altijd meerdere manieren zijn om een programmeerprobleem op te lossen, en dat elk van deze manieren specifieke voor- en nadelen heeft.

Voor we een sorteeralgoritme opstellen, is het zinvol om eerst een functie te schrijven die het werk van het algoritme controleert. Zo’n controlefunctie is vaak makkelijker te schrijven dan het algoritme zelf.