选择排序法的思想是从待排序的序列中找到最小(若从大到小排序,则找最大值)值加入到有序序列中。基于这个思想,很容易实现其算法。注意,选择排序法不是一种稳定的排序法,其时间复杂度为O(n2)。
#include <iostream>
using namespace std;
void selectSort(int a[],int N)
{
int i,j,k;
for( i=0;i<N;i++)
{
k = i;
for(j=i+1;j<N;j++)
{
if(a[j]<a[k])
k = j;
}
int temp = a[i];
a[i] = a[k];
a[k] = temp;
}
}
int main()
{
int arr[10]={-1,90,3,23,994,-23,9,10,100,-2};
printf("原始数组: ");
for(int i=0;i<10;i++)
printf("%d ",arr[i]);
printf("\n");
selectSort(arr,10);
printf("选择排序: ");
for(int i=0;i<10;i++)
printf("%d ",arr[i]);
printf("\n");
system("pause");
return 0;
}