选择排序算法,遍历n次,每次都从中找出最大或则最小的数放在开头。例如 7 4 9 2
这四个数,第一次遍历找到9(最大),然后将9与7调换位置,得到9 4 7 2,第二次找到7,将7与4调换位置,得到9 7 4 2 第三次 找到4 ,位置不变,程序结束。
程序代码如下:
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main()
{
int a[10],i,j,temp,max,pos;
srand((unsigned int)time(NULL));
for(i = 0;i<10;i++)
{
a[i] = rand()%100+1;//随机生成100以内10个数字
printf("%d ",a[i]);
}
printf("\n");
for(i = 0;i<10;i++){
max = a[0];
pos = 0;
for(j = 0;j<10-i;j++)
{
if(a[j] > max)
{
max = a[j];
pos = j;
}
}
temp = a[10-i-1];
a[10-i-1] = max;
a[pos] = temp;
}
for(i = 0;i<10;i++)
printf("%d ",a[i]);
return 0;
}