十大算法 — 冒泡排序法【C语言代码诠释】

#include
#define n 7
int main()
{
	int i,j;
	int x[n];
	printf("请输入7个数字:\n");
	for(i=0;i<n;i++)
		scanf("%d",&x[i]);	
	for(i=0;i<n-1;i++)			//控制趟次,7个数就需要交换6趟(两两交换),∴ :i
	{	
		for(j=0;j<n-i-1;j++)	
		{
		/*控制交换次数,每执行完一趟后,就可以保证最后一个数一定是最大或者最小的数,
		下一轮就无需再管这个数,继续排前面的数就好,那么两趟后就确定了两个最大或者
		最小的数,那么就在继续排列前面的数,∴ :j
			if(x[j]>x[j+1])
			{
				int temp = x[j];		//	temp是两个数交换值的中间变量
				x[j]=x[j+1];			
				x[j+1]=temp;
			}
		}
	}
	printf("按从小到大排序为:\n");
	for(i=0;i<n;i++)
		printf("%d\t",x[i]);
	printf("\n");
	return 0;
}

你可能感兴趣的:(C语言,算法)