3 studenten schreven elk een functie die een gegeven lijst sorteert:
# shuffle(lijst) zet de elementen van een lijst in willekeurige volgorde.
from random import shuffle
# Zet alle lijstelementen in willekeurige volgorde tot de lijst gesorteerd is.
def bogoSort(lijst):
n = len(lijst)
while not sorted(lijst) == lijst:
shuffle(lijst)
return lijst
# Doorloopt de lijst zolang er elementen in zitten.
# Zoekt bij elk lijstelement het minimum van de lijst
# Indien dit mimimum het lijstelement is: verwijder het uit lijst en steek het in een gesorteerde lijst.
def Boris_sort(lijst):
gesorteerde_lijst = []
while len(lijst) > 0:
for i, x in enumerate(lijst):
if x == min(lijst):
lijst.pop(i)
gesorteerde_lijst.append(x)
return gesorteerde_lijst
# Wissel het kleinste element met het eerste, het op één na kleinste met het tweede, enzovoort.
def selection_sort(lijst):
n = len(lijst)
for i in range(n):
min_index = i
for j in range(i+1, n):
if lijst[j] < lijst[min_index]:
min_index = j
lijst[i], lijst[min_index] = lijst[min_index], lijst[i]
return lijst
Geef van elke functie de tijdscomplexiteit, met een uitleg van hoe je eraan komt. Kopieer onderstaand kader in het invoerveld om je antwoorden in te vullen.
tip: de functie min(lijst)
gebruikt 1 lus die over de hele lijst loopt.
# bogoSort(lijst)
# tijdscomplexiteit: <jouw antwoord>
# verklaring: <jouw antwoord>
# Boris_sort(lijst)
# tijdscomplexiteit: <jouw antwoord>
# verklaring: <jouw antwoord>
# selection_sort(lijst)
# tijdscomplexiteit: <jouw antwoord>
# verklaring: <jouw antwoord>