python实现选择排序
2010-3-9
1 代码
def findsmall(list):
small=list[0]
lenth=len(list)
small_index=0
for i in range(1,lenth):
if list[i]<small:
small=list[i]
small_index=i
return small_index
def choose_order(list,a):
lenth=len(list)
for i in range(lenth):
a.append(list.pop(findsmall(list)))
print(a)
return a
my_list=[1,3, 20,10, 5, 4, 9, 6,7]
b=[]
choose_order(my_list,b)
运行结果:实现从小到大排序
2 注意问题
python语言特别注重缩进,平时要注意,养成良好的习惯。
选择排序时间复杂度为O(n^2),工作原理是:第一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,然后再从剩余的未排序元素中寻找到最小(大)元素,然后放到已排序的序列的末尾。以此类推,直到全部待排序的数据元素的个数为零。
选择排序是不稳定的排序方法(默认用数组实现)。