冒泡排序c语言_算法介绍之冒泡排序

    冒泡排序是一种非常简单的排序算法。它重复地走访过要排序的元素列,依次比较两个相邻的元素,如果他们的顺序错误就把他们交换过来。越大的元素会经由交换,慢慢“浮”到数列的顶端,就如同碳酸饮料中二氧化碳的气泡最终会上浮到顶端一样。

3c27a2130ee92b21d024da05db4b9579.gif

村村象表情包

     冒泡排序在编写C语言程序时经常使用,是学习C语言须掌握的排序算法。冒泡排序又叫起泡排序,对n个元素使用冒泡排序,通常需要进行n-1轮比较和交换。


下面以四个水果排序为例,简单介绍冒泡排序算法


      这里有四种水果,分别放在四个果盘上。请调整它们的顺序,使得这些水果按照从小到大排列

82baf6ce87c45259b11841e7931409c2.png


    第一轮第1次:将一号水果盘的苹果与二号水果盘的西瓜比较。小的在前,大的在后,保留原顺序。

81b75cff391703990c30060221ba026c.png


    第一轮第2次:将二号水果盘的西瓜与三号水果盘的柚子比较,小的在后,大的在前。

6aef46b17f36367d3785b4b84bb69e9b.png

         交换:交换两个水果的位置

c4e5f1ffc88f86a4c6f5402d6d5fa6ef.png


      第一轮第3次:将二号水果盘的西瓜与三号水果盘的荔枝比较,小的在后,大的在前。

41fbe6e7dd37b110cddd3bfa116d2bd7.png

交换:交换两个水果的位置。第一轮排序完成。最大的西瓜排到了最后。c050070d9ee08b8488f709c537ccbae4.png


第二轮:

第二轮排序则不管最后的西瓜

只对前三个水果排序

e6d85fbce570b723fdc07cb45df6aeba.png

98279b15fd008c14c1adc24647db924d.png

9325ffdbe8b9ec6425362f99e4ba026b.png


第三轮 : 86c7592d144470454f0aa3a66477bbad.png

b3d82759a9d87f397db375ea51c3d157.png


四个水果,经过3轮,就可顺序排列。



思考:

你能用流程图描述排序算法吗?

n个元素冒泡排序是否必须进行n-1轮?


cc305829bca9e91f224d3707db72e5c5.png

0a85d8c024feaa08c9ac74093c17ae51.gif

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值