def is_gesorteerd(lijst):
for i in range(len(lijst) - 1):
if lijst[i] > lijst[i + 1]:
return False
return True
def wissel(lijst, index1, index2):
tijdelijk = lijst[index1]
lijst[index1] = lijst[index2]
lijst[index2] = tijdelijk
import random
def is_gesorteerd(rij):
# Ga elk element vergelijken met het volgende
for i in range(len(rij) - 1):
if rij[i] > rij[i + 1]:
return False
return True
def wissel(rij, index1, index2):
# Wissel de twee elementen van plaats
tijdelijk = rij[index1]
rij[index1] = rij[index2]
rij[index2] = tijdelijk
def willekeurige_indexen(rij):
# Kies twee willekeurige indexen
i1 = random.randint(0, len(rij) - 1)
i2 = random.randint(0, len(rij) - 1)
return (i1, i2)
def random_sort(rij):
while not is_gesorteerd(rij):
(i1, i2) = willekeurige_indexen(rij)
wissel(rij, i1, i2)
def kleinste_klasnummer_positie(rij):
kleinste_index = 0
for i in range(1, len(rij)):
if rij[i] < rij[kleinste_index]:
kleinste_index = i
return kleinste_index
def kleinste_klasnummer_positie(rij, start_staan):
kleinste_index = start_staan
for i in range(start_staan + 1, len(rij)):
if rij[i] < rij[kleinste_index]:
kleinste_index = i
return kleinste_index
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
def selection_sort(rij):
for i in range(len(rij)):
kleinste = kleinste_element_index(rij, i)
wissel(rij, i, kleinste)
def wissel(lijst, index1, index2):
tijdelijk = lijst[index1]
lijst[index1] = lijst[index2]
lijst[index2] = tijdelijk
def wissel_tot_juiste_plaats(rij, positie_zittend):
i = positie_zittend
while i > 0 and rij[i] < rij[i - 1]:
wissel(rij, i, i - 1)
i -= 1
def wissel(lijst, index1, index2):
tijdelijk = lijst[index1]
lijst[index1] = lijst[index2]
lijst[index2] = tijdelijk
def wissel_tot_juiste_plaats(rij, positie_zittend):
i = positie_zittend
while i > 0 and rij[i] < rij[i - 1]:
wissel(rij, i, i - 1)
i -= 1
def insertion_sort(rij):
for i in range(1, len(rij)):
wissel_tot_juiste_plaats(rij, i)
def kleinste_element_groter_dan(lijst, ondergrens):
kleinste_index = None
for i in range(len(lijst)):
if ondergrens is None or lijst[i] > ondergrens:
if kleinste_index is None or lijst[i] < lijst[kleinste_index]:
kleinste_index = i
return kleinste_index
def kleinste_element_groter_dan(lijst, ondergrens):
kleinste_index = None
for i in range(len(lijst)):
if ondergrens is None or lijst[i] > ondergrens:
if kleinste_index is None or lijst[i] < lijst[kleinste_index]:
kleinste_index = i
return kleinste_index
def selection_sort(lijst):
gesorteerd = []
ondergrens = None
for _ in range(len(lijst)):
index = kleinste_element_groter_dan(lijst, ondergrens)
ondergrens = lijst[index]
gesorteerd.append(ondergrens)
return gesorteerd