简单选择排序相对来说也比较容易理解,他跟冒泡的区别在于:省去了多余的数据交换操作,定位较小元素的位置并记录下标,在比较完所有的数据元素之后再把最小的数据元素提到序列前端。
# include <iostream>
# define SIZE 10
using namespace std;
void Select_Sort(int a[],int n);
void Select_Sort(int a[],int n)
{
int i,j,min,temp;
for (i=0;i<n-1;i++)
{
min = i;
for (j=i+1;j<n;j++)
{
if (a[min]>a[j])
{
min = j;
}
}
if(i != min)
{
temp = a[i];
a[i] = a[min];
a[min] = temp;
}
}
}
void main()
{
int number[SIZE] = {19,23,12,24,66,47,53,85,78,10};
int num;
Select_Sort(number, SIZE);
for(num=0;num<SIZE;num++)
{
cout<<number[num]<<" ";
}
}
但是他的时间复杂度仍然跟冒泡排序一样,为O[n2],性能上略有优势。