def selection_sort(a) :
N = len(a)
# invariant: sorted(a[0..i-1]) and a[0..i-1] <= a[i..N-1]
for i in range(N - 1) : # iteration
j = i
# k = i + 1
# invariant: a[j] == min(a[i..k-1])
for k in range(i + 1, N) :
if a[k] < a[j] : j = k
a[i], a[j] = a[j], a[i]
a = [3, -1, 5, 10]
selection_sort(a)
print(a)[-1, 3, 5, 10]