基本思想
每一次从待排序的序列中找出最小或最大的那一个,然后存放在序列的起始位置,然后继续找第二小或第二大的那一个,存放在序列的第二个位置,知道全部待排序的数据排序完成。
python实现
#!/usr/bin/python
# encoding: utf-8
# 选择排序
def selectSort(alist):
# 遍历的次数
for i in range(0, len(alist)):
# 存储的位置
flag = i
for j in range(i+1, len(alist)):
# 如果比当前位置的值还要小,则更新位置
if alist[flag] > alist[j]:
flag = j
# 找到最大的位置后,交换位置
alist[flag],alist[i] = alist[i],alist[flag]
a = [5,2,1,3,7,9,8,4,6]
selectSort(a)
print(a) # [1, 2, 3, 4, 5, 6, 7, 8, 9]