请问你见过吐代码的泡泡吗(冒泡排序)


🤩本文作者:大家好,我是paperjie,感谢你阅读本文,欢迎一建三连哦。

🥰内容专栏:这里是《算法详解》,笔者用重金(时间和精力)打造,将算法知识一网打尽,希望可以帮到读者们哦。

🥴内容分享:本期会对C语言中的冒泡排序进行分析,讲解什么是冒泡排序,冒泡排序的思想,怎样实现冒泡排序。

😘:不要998,只要一件三连,三连买不了吃亏,买不了上当(写作不易,求求了💓)


目录

😄前言

😁什么叫做冒泡排序

😇算法思想

😋冒泡排序的具体实现

🤑冒泡排序的优缺点

🤗总结


😄前言

上期我们对二分查找进行了详细的讲解,介绍了它的由来,算法思想和最终怎样实现二分查找。想了解的小伙伴可以去看看哦(http://t.csdn.cn/EM3dM)。接下来就开始本期的内容叭!

😁什么叫做冒泡排序

百度百科中说冒泡排序(Bubble Sort),是一种计算机科学领域的较简单的排序算法它重复地走访过要排序的元素列,依次比较两个相邻的元素,如果顺序(如从大到小、首字母从Z到A)错误就把他们交换过来。走访元素的工作是重复地进行,直到没有相邻元素需要交换,也就是说该元素列已经排序完成。这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端(升序或降序排列),就如同碳酸饮料二氧化碳的气泡最终会上浮到顶端一样,故名“冒泡排序”

😇算法思想

冒泡排序的核心思想是让相邻的元素两两比较,每一对都要比较,符合要求就交换位置,不断重复,直到没有元素需要比较

算法思想的实现:假设数组内有n个数随机排放。1.在数组初始状态下, 我们将整个数组设为排序范围,范围为数组下标为0-n-1的数。 2.从下标为0的数开始,两两相邻的数比较,如果前一个数大于后一个数,则进行交换。交换后再和后一个数进行比较,一直比较到最后一个数,这样最大的数就被排到到最后了。 3.前面为第一趟排序,我们需要进行n-1趟排序,假设第一次排序标记为0,标记数为i,每过一趟i+1,那么每次排序需要两两比较的次数为 n-1-i。4排序到没有元素可以排序后则排序完成。文字那么生涩难懂,直接上图片分析叭:

😋冒泡排序的具体实现

🤑冒泡排序的优缺点

优点:冒泡排序比较简单,空间复杂度较低,具有算法稳定性冒泡排序就是把小的元素往前调或者把大的元素往后调。比较是相邻的两个元素比较,交换也发生在这两个元素之间。所以,如果两个元素相等,是不会再交换的;如果两个相等的元素没有相邻,那么即使通过前面的两两交换把两个相邻起来,这时候也不会交换,所以相同元素的前后顺序并没有改变,所以冒泡排序是一种稳定排序算法。但是它的缺点也比较显著:时间复杂度太高,效率慢;


🤗总结

1.计算元素的个数,确定排序的趟数(为个数-1)

 2.确定每趟两两比较的次数。(每过一趟两两比较次数减一)、

3.直到没有元素比较则结束。

  • 34
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 43
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

paper jie

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值