选择排序:空间复杂度为O(1),时间复杂度为O(n^2),算法不稳定,不具有适应性
1、扫描,获取最小元素
2、与排好序的后一个元素交换位置
算法的稳定性是指:对于待排序的序列中,相同项的原来次序不能被改变
但是选择排序算法将最小元素与排好序的后一个元素交换位置时,可能会造成相同项次序交换。
算法的适应性是指:算法因原序列有序而更高效
def select_sort(lst):
print 'lst: ', lst
for i in range(len(lst) - 1):
smallest = i
for j in range(i, len(lst)):
if lst[j] < lst[smallest]:
smallest = j
print 'smallest: ', smallest
lst[i], lst[smallest] = lst[smallest], lst[i]
print 'lst: ', lst
return lst