用选择法对10个整数进行排序

选择法将同一单个元素与还未比较的元素进行比较:a[0]分别与a[1]-a[9]进行比较,a[0]值确定后,a[1]分别与a[2]-a[9]比较,a[1]值也确定了,接着a[2]分别与a[3]-a[4]比较,依次类推。

冒泡法排序,将相邻的元素之间两两比较:a[0]与a[1]比较,假如是要由小往大排,若a[0]>a[1],a[0]与a[1]值互换。a[1]再与a[2]比较,若a[1]<a[2],则值不变,a[2]继续与a[3]比较,依次类推,a[9]的值最终敲定。接着继续a[0]与a[8]之间两两比较,使得a[8]的值最终敲定,依次类推。

去找个图或者敲一下就很容易理解了。

#include<stdio.h>
int main()
{
	int a[10];
	int i,j;
	int temp=0,n=10;
	//赋值数组
	printf("请输入10个元素:\n");
	for(i=0;i<10;i++)
	{
		scanf("%d",&a[i]);
	}
	//输出原顺序数组
	printf("原数组为:\n");
	for(i=0;i<10;i++)
	{
		printf("%5d",a[i]);
	}
	puts("\n");
	//对比选择(由小到大排序)
	for(i=0;i<n-1;i++)
	{
		for(j=i+1;j<10;j++)
		{
			if(a[i]>a[j])
			{
				temp=a[i];
				a[i]=a[j];
				a[j]=temp;
			}
		}
	}
	//输出排序后的数组
	printf("排序后数组为:\n");
	for(i=0;i<10;i++)
	{
		printf("%5d",a[i]);
	}
	puts("\n");
	return 0;
}

版权声明:本文为qq_44626925原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。