//选择排序,前提必须了解找到数组中最小数和最大数的算法
# include<stdio.h>
# include<stdlib.h>
# include<time.h>
int main()
{
//利用时间随机数生成数组
time_t ts;
unsigned int data = time(&ts);
srand(data);
int a[10];
for (int i = 0; i < 10; i++)
{
a[i] = rand() % 100;
printf("%d\n", a[i]);
}
for (int i = 0; i < 9; i++)
{
int min = i; //假设把第一个数当作最小的数
printf("\n%d,%d,%d,%d", i, min, a[i], a[min]);//注意按列观察
for (int j = i + 1; j < 10; j++)//定义变量j来遍历,注意遍历的开始是第二为开始的
{
if (a[j] < a[min])//如果有一个数比下标为min的数还小,就把小的数的下标给min
{
min = j;
}
}
if (min != i)//如果min和之前的i不一样,那么就得交换了
{
int t = a[min];
a[min] = a[i];
a[i] = t;
}
}
for (int i = 0; i < 10; i++)
{
printf("%d ", a[i]);
}
system("pause");
}