Tijdscomplexiteit (6 ptn)

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>