算法学习笔记–排序之选择排序
定义
选择排序需要额外的存储空间,且排序的时间为O(N^2),其实为O(1/2(N^2))但是常数可以省略。
选择排序每次都遍历一遍剩下的数,然后选出最小的一个数放到排序好的存储空间中去。
实现
python中没有数组,所以用列表(List)代替。
def find_smallest(array):
smallest = array[0]
for i in range(len(array)):
if smallest > array[i]:
smallest = array[i]
return smallest
def selection_sort(array):
sorted = []
for n in range(len(array)):
smallest = find_smallest(array)
sorted.append(smallest)
array.remove(smallest)
return sorted
if __name__ == '__main__':
list1 = [4,3,2,1,-2,3,5,3]
print list1
print selection_sort(list1)
运行结果
[-2, 1, 2, 3, 3, 3, 4, 5]