选择排序算法的思路是:第一趟,标记第一个元素,从所有元素中找到最小的元素,与第一个元素相互交换位置。然后标记第二个元素,从剩下n-1个(除去第一个元素)元素中找到最小的元素,与第二个元素交换位置。第三趟,标记第三个元素,从剩下n-2个元素找到最小的元素,与第三个元素相互交换位置,这样一直到第n-1趟,便可以按照从大到小完成排序。
标记的应该是数组的下标,通过下标的改变实现数组元素位置的交换。
标记的应该是数组的下标,通过下标的改变实现数组元素位置的交换。
时间复杂度为O(^2);
附简单代码如下:
void sort(int a[10])
{
int i,j,k,t;
for(i=0;i<9;i++)//共进行n-1趟
{
k=i; //k标记数组的下标。
for(j=i+1;j<10;j++)//第i趟从第i个元素起找寻最小的元素。
{
if(a[k]>a[j]) //满足条件,k记录最小元素的下标
k=j;
}
if(a[k]!=a[i]) //第i趟把找到的最小的元素与第i个元素交换位置。
{
t=a[k];
a[k]=a[i];
a[i]=t;
}
}
}