选择排序法

66 阅读1分钟
输入一段数字,按从小到大输出

 

#include<stdio.h>
int main()
{
	int n,i,j,x,z,num[15];
	scanf("%d",&n);
	for(i=0;i<n;i++)
	{
		scanf("%d",&num[i]);
	}
	
	for(j=0;j<n-1;j++)
	{
		int index=j; 
		int min=num[j];
		for(z=j+1;z<n;z++)
		{
			if(num[z]<min)
			{
				min=num[z];
				index=z;
			}
		}
		int t=num[j];
		num[j]=num[index];
		num[index]=t;
	}
	
	for(x=0;x<n-1;x++)
	{
		printf("%d ",num[x]);
	}
	printf("%d",num[x]);
	return 0;
}

思路还是非常清晰的:首先我们把得到的数字都存到数组中去,再利用嵌套循环,将每一个数字(设为a)与它后面的数字(设为b),如果后面的数字b<a的话就将b与a的位置交换,以此类推~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

最后输出整个数组即可~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~