一、算法复杂度
二、算法步骤
1、首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置
2、首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置
3、重复第二步,直到所有元素均排序完毕;
三、代码实现(python版本)
其他版本的代码已经很多了,这里出个Python版本的;
test = [4, 2, 5, 3, 6]
def selection_sort(s):
n = len(s)#数据的长度
for i in range(n):
min_idx = i
for j in range(i+1, n):
if s[j] < s[min_idx]:
min_idx = j
#进行交换
if i != min_idx:
tmp = s[min_idx]
s[min_idx] = s[i]
s[i] = tmp
return s
print(selection_sort(test)) #结果:[2, 3, 4, 5, 6]