/*
时间:2018年4月7日09:44:43
思路:数组循环遍历n-1次,循环第一次找到最大值,放在数组首位;
循环第二次找到次最大值,放在数组第二位。依次循环即可。
*/
#include<stdio.h>
#define N 10
int main()
{
int i, j, k, n;
int t, temp;
int a[N];
scanf("%d",&n);
for (i = 0; i < n; i++)
{
scanf("%d", &a[i]);
}
for (i = 0; i < n-1; i++) //必须循环n次吗?
{
t = i;
for (j = i + 1; j < n; j++) //找到数值最小的元素下标,依次放在a[0],a[1]..a[n-1]中
{
if (a[t] <= a[j]) //找到数值最大的元素下标, 依次放在a[0], a[1]..a[n - 1]中
{
t = j;
}
}
temp = a[i];
a[i] = a[t];
a[t] = temp;
}
printf("%d", a[0]);
for (i = 1; i < n; i++)
{
printf(" %d", a[i]); //注意:空格
}
return 0;
}
实验7-1-5 选择法排序(20 分)
最新推荐文章于 2024-03-10 10:42:02 发布