用选择法对10个整数排序

用选择法对10个整数排序
选择排序的思路如下:
设有10个元素,a[1]-a[10],将a[1]与a[2]-a[10]进行比较,若a[1]比a[2]-a[10]都小,则不进行交换,即无任何操作。
若a[2]-a[10]中有一个以上比a[1]小,则将其中最小的一个(假设为a[i]) 与a[1]交换,此时a[1]中存放了10个数中最小的一个
第二轮将a[2]与a[3]-a[10]进行比较,将剩下9个数中的最小的一个a[i]与a[2]进行交换
此时a[2]中存放了10个数中第二小的一个数,依次类推,共计进行9轮比较,就会排好序了

#include<stdio.h>
int main()
{
	int i, j, min, temp, a[10];
	for (i = 1; i <=10; i++)
	{
		printf("a[%d]= ", i);
		scanf("%d", &a[i]);//输入10个数
	}
	printf("\n");
	printf("the orginal numbers :\n");
	for (i = 1; i <=10; i++)
		printf("%5d", a[i]);
	printf("\n");
	for (i = 1; i <= 9; i++)
	{
		min = i;
		for (j = i + 1; j <= 10; j++)
			if (a[min] > a[j]) min = j;
		temp = a[i];
		a[i] = a[min];
		a[min] = temp;
	}
		printf("the sorted numbers :\n");
		for (i = 1; i <= 10; i++)
			printf("%5d", a[i]);
	printf("\n");
	return 0;
}
发布了39 篇原创文章 · 获赞 37 · 访问量 1983

猜你喜欢

转载自blog.csdn.net/weixin_43831728/article/details/100063291
今日推荐