def selection_sort(a) :
= len(a)
N # invariant: sorted(a[0..i-1]) and a[0..i-1] <= a[i..N-1]
for i in range(N - 1) : # iteration
= i
j # 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[j], a[i]
a[i], a[j]
= [3, -1, 5, 10]
a
selection_sort(a)print(a)
[-1, 3, 5, 10]