Sorting algorithms
Selection sort
def selection_sort(data):
for i in range(len(data)):
mini = i # find index of minimum
for j in range(i + 1, len(data)):
if data[j] < data[mini]:
mini = j
data[i], data[mini] = data[mini], data[i] # swap entries i and mini
Insertion sort
def insertion_sort(data):
for i in range(1, len(data)):
t = data[i] # t = value to insert in data[0:i+1]
j = i - 1
while j >= 0 and data[j] > t: # entry j belongs after t
data[j + 1] = data[j] # so shift it back to make room
j = j - 1
data[j + 1] = t # now place t in its right spot