冒泡排序

**

冒泡排序

**

前言

好久没写博客了,虽说冒泡排序很基础,但还是要一点点的来…

题目

任务描述
本关任务:将十个数进行从大到小的顺序进行排列。

相关知识(略)
编程要求
根据提示,在右侧编辑器Begin-End处补充代码。
输入
输入十个整数。

输出
以从大到小的顺序输出这个十个数。

测试说明
样例输入:
1 2 3 4 5 6 7 8 9 10

样例输出:
10 9 8 7 6 5 4 3 2 1

代码

#include
int main(void)
{

    int i,j,n,a[15];
	for(i=0;i<10;i++)
		{
    		scanf("%d",&a[i]);//输入数组
		}
	for(i=0;i<9;i++)//可以理解为10个位置,9个循环是固定9个位置,剩余的1个位置也就固定了
    	for(j=0;j<9-i;j++)//因为有i个数比较过了,所以在每个循环中比较9-i次
    	{
        	if(a[j]<a[j+1])//小循环里不能出现i,i的意义是循环次数,j才是内部的相互比较
        {
            n=a[j];
            a[j]=a[j+1];
            a[j+1]=n;
        	}
    	}
	for(i=0;i<10;i++)//该循环不属于上述循环,只是单纯为了输出,能表示下标就行,叫阿猫阿狗都行~~doge~~ 
	{
    	printf("%d ",a[i]);
	}
 	return 0;
}

注释

for循环嵌套里的第一个for是总共有几个大的循环,第二个是在对应大循环里数与数的比较次数,也就是说真正的比较在于第二个for循环

你可能感兴趣的:(算法,排序,c语言)