选择排序(Selection sort)是一种简单直观的排序算法。它的工作原理是每一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,直到全部待排序的数据元素排完。 选择排序是不稳定的排序方法(比如序列[5, 5, 3]第一次就将第一个[5]与[3]交换,导致第一个5挪动到第二个5后面)。
例题:任意输入10个数字,选择排序后输出。
见代码:
#include<stdio.h>
#define N 10
void main(){
int a[N],i,j,t,k;
printf("Please input 10 number:\n");
for(i=0;i<N;i++)
scanf("%d",&a[i]);
printf("\n");
for(i=0;i<N-1;i++){ //控制选择次数
k=i;
for(j=i+1;j<N;j++) //控制每次选择时的比较对数
if(a[k]>a[j]) k=j;
if(k!=i){ //判断是否需要交换数值
t=a[i];
a[i]=a[k];
a[k]=t;
}
}
printf("The sorted number:\n");
for(i=0;i<N;i++)
printf("%3d",a[i]);
printf("\n");
}