【C语言经典】冒泡排序(从大到小)

分析

这里借鉴了网上的动图更加的清晰
在这里插入图片描述
冒泡排序说实在的就是一种数据与数据之间的比较然后交换。
例如:淘宝上我们可以对价格和销量进行排序。
因为其排序结果和冒泡的过程一样 因此取名为冒泡排序(起码我的认知是这样的)

算法

冒泡排序的原理(以递增序为例)是每次从头开始依次比较相邻的两个元素,如果后面一个元素比前一个要大,说明顺序不对,则将它们交换,本次循环完毕之后再次从头开始扫描,直到某次扫描中没有元素交换,说明每个元素都不比它后面的元素大,至此排序完成。

因为冒泡有两种一种上浮一种下沉 这里给大家就演示一种下沉(从大到小)
首先进行的是一轮循环i=0然后对循环之下j的循环判断也就是将每一个i和i+1之后的数据一一进行比较如果大于则执行swap也就是交换。如果=<那么执行++继续循环判断下一个知道i的判断条件终止。这样就完成了对无序数据的排序。

代码剖析

int bubble_sort(int *str, int n)
{
    int i,j,tmp;
    for(i=0; i<n; i++)
    {
        for(j=i+1; j<n; j++)
        {
            if(str[i] > str[j]) 
            {
                tmp = str[i]; 
                str[i] = str[j]; 
                str[j] = tmp;
            }
        }
    }

    return 0;
}
  • 14
    点赞
  • 56
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值