选择排序,每次选出最小的数然后和前面的数交换。这样相比冒泡排序而言只用交换一次。复杂度n平方,并且是不稳定的。如(4,4,2,第一次将第一个4和2交换。)
void select sort(int a[],int n)
{
for(i=0;i<n;i++)
{
temp=i;
for(j=i+1;j<n;j++)
{
if(a[j]<a[temp])
temp=j;
}
if(i!=temp)
swap(a[i],temp);
}
}
补充swap函数,引用。
void swap (int &a,int &b)
{
int temp=a;
a=b;
b=temp;
}
如果不用第三变量,异或。
void swap (int &a,int &b)
{
if (a!=b) //若相等会为0;
{
a^=b;
b^=a;
a^=b;
}
}