选择排序分简单选择排序与堆排序两种,先介绍简单选择排序。
1.简单选择排序
在未排序的序列中找到最小(大)元素,存放到排序序列的起始位置,然后再在未排序的序列中找到最小(大)元素,然后再放到已排好序的序列后面......直到排序完成
#include <stdio.h>
#define M 5
int main()
{
int i,j,min=0,temp=0;
int a[M];
printf("input 5 numbers:");
for(i=0;i<M;i++)
scanf("%d",&a[i]);
for(i=0;i<M-1;i++)
{
min=i;
for(j=i+1;j<M;j++)
{
if(a[min]>a[j]) min=j;//记录最小元素下标
}
temp=a[i];//一趟for循环后找到本轮最小值,交换
a[i]=a[min];
a[min]=temp;
}
for(i=0;i<M;i++)
printf("%d,",a[i]);
return 0;
}