Mister-小方


私信TA

用户名:1104986125

访问量:248269

签 名:

如此英俊为哪般

等  级
排  名 4
经  验 36961
参赛次数 1
文章发表 68
年  龄 19
在职情况 学生
学  校 大连交通大学
专  业 车辆工程

  自我简介:

TA的其他文章

解题思路以及注意事项:

  1. 用两层for循环嵌套,让每两个数进行比较,满足条件就交换。

  2. 因为其效果像冒泡一样,所以又叫冒泡法。

实例代码:

#include"stdio.h"
int main()
{
    int a[10],i,changes,j;                  //定义了a数组,i,j一般都是用来控制循环的
    for(i=0;i<10;i++)
    {
    scanf("%d",&a[i]);
    }
    for(i=0;i<9;i++)                       //依次从第一个数开始排,每次到外层循环都会排好一个数
        for(j=0;j<10-i;j++)
        {
            if(a[j]>a[j+1])
            {
                changes=a[j];               //交换
                a[j]=a[j+1];
                a[j+1]=changes;
            }
        }
        for(i=0;i<10;i++)                   //输出
        {
            printf("%d\n",a[i]);
        }
    return 0;
}

如果还有什么不懂的请到下方评论区留言

 

0.0分

4 人评分

  评论区

你这是冒泡排序啊
2019-12-26 20:57:14
选择法不是这样的吧
2018-04-10 19:33:25
选择不是冒泡,不需要每次对比都交换位置,只需要在每个“剩余最小”交换就可以了,最多交换10次。
2018-01-09 20:30:41
应该是j<9-i,因为i=0的时候如果是10-i,j能取到0,那a[j+1]就能取到a[10]了,明显是错的
2017-10-26 21:12:30
我看不懂11-i,能给讲讲吗?
2017-06-11 02:32:21
  • «
  • 1
  • »