选择排序(Selection Sort)
选择排序的基本思想是对待排序的记录序列进行n-1遍的处理,第i遍处理是将ai,…,an中最小者与ai交换位置。这样,经过i遍处理之后,前i个记录的位置已经是正确的了。
直接选择排序:
void docr(float *in,int count)
{
int i;
int j;
int x=0;
float temp;
for(i=0;i<count;i++)
{
temp=*(in+i);
x=i;
for(j=i;j<count;j++)
{
if(*(in+j)<temp)
{
temp=*(in+j);
x=j;
}
}
*(in+x)=*(in+i);
*(in+i)=temp;
}
}
总移动次数:3(n-1)
比较次数:n(n-1)/2