####原理 从未排序序列中找到最大(小)元素,存放在排序序列的起始位置,知道所有元素排序完毕 ####时间复杂度 O(n^2) ####C代码 来自
<!-- lang: cpp -->
void select_sort(int *a, int n){
register int i, j, min, t;
for(i = 0; i < n - 1; i ++){
min = i;
//查找最小值
for(j = i + 1; j < n; j ++)
if(a[min] > a[j])
min = j;
//交换
if(min != i){
t = a[min];
a[min] = a[i];
a[i] = t;
}
}
}
####python代码 来自
<!-- lang: python -->
def select_sort(L):
for i in range(0, len (L)):
min = i
for j in range(i + 1, len(L)):
if L[j] < L[min]:
min = j
L[i], L[min] = L[min],L[i] # swap
return L