选择排序法是一种不稳定的排序算法。它的工作原理是每一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,然后,再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾。以此类推,直到全部待排序的数据元素排完。

摘录于: 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;
}

 

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐