In [1]:
def selection_sort(a):
for i in range(len(a)):
mini = i
for j in range(i+1, len(a)):
if a[mini] > a[j]:
mini = j
a[mini], a[i] = a[i], a[mini]
return a
In [2]:
alist = [4,2,1,10,5,3,100]
print(selection_sort(alist))
In [ ]:
In [6]:
# grokking algorithms
def selection_sort2(a):
new_a = []
for i in range(len(a)):
smallest = find_smallest(a)
new_a.append(a.pop(smallest))
return new_a
def find_smallest(a):
#smallest = a[0]
smallest_idx = 0
for i in range(1, len(a)):
if a[i] < a[smallest_idx]:
#smallest = a[i]
smallest_idx = i
return smallest_idx
In [ ]:
In [7]:
alist = [4,2,1,10,5,3,100]
print(selection_sort2(alist))
In [ ]: