选择排序

来源:互联网 发布:完整性保护算法 编辑:程序博客网 时间:2024/06/03 19:04

选择排序,每次选出最小的数然后和前面的数交换。这样相比冒泡排序而言只用交换一次。复杂度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;    }   }
0 0
原创粉丝点击