首先要注意到选择排序和插入排序的异同点:
二者都分有序区和无序区,但是选择排序是在无序区选出最小的元素放到有序区的末位以此扩大有序区,而插入排序是将无序区的第一个元素插入到有序区合适的位置。
代码如下:
void SelectSort(int a[], int len)
{
int i,j,min;
for(i=0; i<len; i++)
{
min=i;
for(j=i+1;j<len;j++)
{
if(a[j]<a[min])
min=j;
}
Swap(a[i],a[min]);
}
}
void Swap(int &a, int &b)
{
int c = a;
a = b;
b = c;
}
int main()
{
int a[6]={6,2,5,7,3,10};
int len = sizeof(a)/sizeof(int);
SelectSort(a,len);
for(int i=0;i<len;i++)
printf("%d",a[i]);
return 0;
}