初级算法:冒泡排序

冒泡排序是一种比较常用的基础的排序算法,冒泡排序的基本思想是:每次比较两个相邻的元素,如果它们的顺序错误就把它们交换 过来。 下列是以从大到小排列为例讲解。因为是按照从大到小排列所以越小的越靠后面

该算法是通过循环嵌套实现的,首先外循环表示有n个数需要排序,因为是n个数所以只需要循环n-1次就可以了,外循环每循环一次就表示确定了一个数字的位置。而内循环则是从头开始将相邻的两个数进行比较,因为是按照从大到小的顺序排列所以两个数比较,小的数在后面,等到内循环一次执行完毕后表示该数字就是现在的位置就是它按照从大到小的顺序的位置。

具体代码如下:

#include<stdio.h>
int main()
{
    int a[101],n,m;
    scanf("%d",&n);//输入n表示有n那个数需要进行排列
    for(int i=1;i<=n;i++)
        scanf("%d",&a[i]);//将需要排列的数据存放在数组中
    //冒泡排序的核心部分
    for(int i=1;i<=n-1;i++)//外循环,n个数字只需要循环n-1次
    {
        for(int j=1;j<=n-i;j++)/*从第一位开始比较直到最后一个尚未归位的数*/
        {
            if(a[j]<a[j+1])//比较大小并交换
            {
                m=a[j];
                a[j]=a[j+1];
                a[j+1]=m;
            }
        }
    }
    for(int i=1;i<=n;i++)//输出结果
        printf("%d ",a[i]);
    return 0;
}

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值