# funkcja znajdująca element minimalny na liście l począwszy od elementu i def mini(i, l): n = len(l) # przyjmij jako minimum pierwszy przeszukiwany element m = i # nie trzeba sprawdzać pierwszego elementu i += 1 # szukaj w pozostałej części ciągu elementów mniejszych niż minimum while i < n: if l[i] < l[m]: # jeśli znaleziono, przyjmujemy go jako nowe minimum m = i i += 1 return m # sortowanie przez wybór def selection_sort(l): n = len(l) # range(n - 1) zamiast range(n), bo ostatni element na pewno będzie już na właściwym miejscu # po wykonaniu pętli for i in range(n - 1): m = mini(i, l) l[m], l[i] = l[i], l[m] return l