1.步骤拆分
a.从0位置遍历一遍找到最小(大)值
b.把最小(大)值和0位置的值交换,然后0位置的值就不用动了
c.然后从1位置遍历,找到最小(大)值
d.再把最小(大)值和1位置的值交换,然后1位置的值就固定了
e.重复上面的步骤
2.时间、空间复杂度及稳定性与否
O(N^2)
O(1)
不稳定 (相同值的个体之间,如果不因为排序而改变相对次序,就说明这个排序有稳定性)
3.伪代码
void select_sort(int *a,int length)
{
int i,j,temp,min;
for(i=0;i<n-1,j++)
{
min = i;
for(j=i+1;j<n;j++)
{
if(a[i]>a[j])
{
min = j;
}
}
temp = a[min];
a[min] = a[i];
a[i] = temp;
}
}