一、取得最小数索引:
(1)假定最小值是第一个数组元素:ls[0]为最小值;最小值索引为0。
(2)对列表元素逐一遍历,比较与假定的元素的大小,如果小于假定值,那么就交换,然后返回其索引作为函数的返回值。
def getmin(ls):
min = ls[0]
min_index = 0
for i in range(0,len(ls)):
if ls[i] < min:
min = ls[i]
min_index = i
return min_index
二、选择排序:
(1)新建一个列表newls用来存储排序后的元素。
(2)通过上面的比较最小值,得到每一个循环中的最小值的索引,得到对应值,并将其添加到newls中。
def selectsort(ls):
newls = []
for i in range(0,len(ls)):
min_index = getmin(ls)
newls.append(ls.pop(min_index))
return newls
三、完整代码:
def getmin(ls):
min = ls[0]
min_index = 0
for i in range(0,len(ls)):
if ls[i] < min:
min = ls[i]
min_index = i
return min_index
def selectsort(ls):
newls = []
for i in range(0,len(ls)):
min_index = getmin(ls)
newls.append(ls.pop(min_index))
return newls
ls = [1,4,2,8,5,7,3,9]
print(selectsort(ls))