# 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