👀 Voorbeeld – Selection Sort is sneller

klok

Onderstaande code toont hoe snel het Selection Sort algoritme een rij getallen sorteert. Herinner je dat Random Sort een lijst met 10 elementen niet binnen de minuut kon sorteren. Selection Sort is duidelijk veel sneller.

Kijk eens goed naar de uitvoertijden: de lijsten verdubbelen steeds in lengte. Wat gebeurt er dan met de uitvoertijd?

💻 Programmeeroefening – Efficiënter sorteren: Selection Sort

Schrijf een functie selection_sort(rij) die de gegeven lijst rij van klein naar groot sorteert door gebruik te maken van het Selection Sort algoritme.

In deze oefening kan je gebruikmaken van de volgende functies:

  • wissel(rij, index1, index2): wisselt de elementen op index1 en index2 in lijst rij van plaats
  • kleinste_element_index(rij, start_index): geeft de index van het kleinste element in lijst rij vanaf index start_index terug

Kopieer en plak deze functies in de editor hieronder, boven de functie selection_sort(rij)

def wissel(rij, index1, index2):
    # Wissel de elementen op index1 en index2
    tijdelijk = rij[index1]
    rij[index1] = rij[index2]
    rij[index2] = tijdelijk


def kleinste_element_index(rij, start_index):
    # We vertrekken van start_index als voorlopig kleinste
    kleinste_index = start_index

    # Doorloop de rest van de lijst
    for i in range(start_index + 1, len(rij)):
        if rij[i] < rij[kleinste_index]:
            kleinste_index = i

    return kleinste_index