用选择法对10个整数排序
选择排序法是一种不稳定的排序算法。它的工作原理是每一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,然后,再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾。以此类推,直到全部待排序的数据元素排完。摘录于:baike.baidu.com/item/选择排序法/2304587思路:十个元素,可以第一个元素和第二个元素进行比较得出较大值,再将较大值与下一个元
文章共1,053字 · 阅读需要大约4分钟
一键AI生成摘要,助你高效阅读
问答
·
选择排序法是一种不稳定的排序算法。它的工作原理是每一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,然后,再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾。以此类推,直到全部待排序的数据元素排完。
摘录于: baike.baidu.com/item/选择排序法/2304587
思路:
十个元素,可以第一个元素和第二个元素进行比较得出较大值,再将较大值与下一个元素比较,以此类推,则可得出十个数中的最大值。如果最大值不是第一个元素,则将最大值与数组的第一个元素互换数值。在第二轮比较中,从第二个元素开始比较,方法同第一轮。
#include<stdio.h>
int main()
{
int i, j, k, m;
int a[10];
printf("请输入十个整数;\n");
for (i = 0; i < 10; i++)
scanf_s("%d",&a[i]);//用scanf输入数组
printf("\n");
for (i = 0; i < 10; i++)
{
k = i;//假设初始值为最大值
for (j = i + 1; j < 10; j++)
{
if (a[j] > a[k])
k = j;
}//求出每一轮比较的最大值
if (k != i)
{
m=a[i];
a[i] = a[k];
a[k] = m;//a[i]和a[k]数值互换,使得该轮比较后a[i]为最大值
}
}
printf("用选择法对十个整数从大到小排序结果为:\n");
for (i = 0; i < 10; i++)
printf("%5d", a[i]);
printf("\n");
return 0;
}
更多推荐
已为社区贡献2条内容
所有评论(0)