/*2014年3月12日*****/
/*直接选择排序******/
#include "stdio.h"
#include"stdlib.h"
#include"time.h"
void StraightSelectSort();
void swap();
#define M 10
int a[M],b,i,j;
void main()
{
srand((int)time(NULL));
printf("随机生成10个0-9的整数: \n");
for(i=0;i<=M-1;i++)
{
a[i]=rand()/3276;
printf("%d,",a[i]);
}
printf("\n\n");
printf("直接选择排序后: \n");
StraightSelectSort();
for(i=0;i<=M-1;i++)
printf("a[%d]=%d\n",i,a[i]);
}
void swap(int &x,int &y)
{ b=x;
x=y;
y=b;
}
void StraightSelectSort()//直接选择排序
{
for(i=0;i<M;i++)
{
int min=i;
for(j=i+1;j<M;j++)//找出剩余的最小数
if(a[j]<a[min])
min=j;
swap(a[i],a[min]);//最小数与第一个交换
}
}
/*void StraightSelectSort()//直接选择排序
{
for(i=0;i<M-1;i++)
{
for(j=i;j<M-1;j++)//找出剩余的最小数的另种写法
if(a[j]<a[j+1])
swap(a[j],a[j+1]);
swap(a[i],a[M-1]);//最小数与第一个交换
}
}
*/
运行结果: