冒泡排序(更新)

Posted 眯喵学堂

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了冒泡排序(更新)相关的知识,希望对你有一定的参考价值。

(图片来源于网络)

冒泡排序概念:

冒泡排序是一种简单的排序算法,重复地走访需要排列的元素,并比较相邻两个元素,如果顺序不正确则交换两个元素的位置,直到没有再需要交换的元素。


冒泡排序有升序排列和降序排列两种,本次分享的Scratch项目是降序排列,即较大的数慢慢浮起来。


算法思想:

  • 从第一个开始,比较相邻两个元素的大小,将较小的元素交换到下方;

  • 如此地重复比较相邻的两个元素;

  • 第n趟比较完毕,最下方的元素一定是最小的,所以下方的n个元素不参与下一趟的比较;

    • 第一趟比较完毕,最下方的一个元素不参与第二趟的比较;

    • 第二趟比较完毕,最下方的两个元素不参与第三趟的比较;

    • 以此类推,每一趟比较次数依次减少。

  • 直到没有再需要交换的元素,则停止比较。

  • 总的排序次数为1 ~ n-1的整数和。


⭐ 冒泡排序算法在很多图形化等级测试或比赛中都是必考的算法之一

冒泡排序(更新)


  1. 创建一个列表,并保证每次运行程序初始列表里面没有多余的数据。本项目是随机生成的5个数据(当然也可以是输入数据)

    冒泡排序(更新)


  2. 通过上面的描述,一般元素需要进行多趟的比较,所以需要新建一个变量,表示具体现在是哪一趟;而在每一趟比较中需要对列表中相邻的两个元素进行比较,所以需要创建一个索引变量用于提取列表中的元素。因为在比较的过程中,可能需要交换元素,则需创建一个中间变量来存储较大的数。

冒泡排序(更新)

 


  1.  定义”冒泡排序“函数

冒泡排序(更新)

①变量”趟数“初始值设置为0,每比较完一趟之后值增加1;

②表示总共比较的趟数,因为从第一项开始往下比较 ,所以比较的趟数为列表长度减1;

③变量”索引“每一趟比较的都是从第一项开始,所以值要设置为1;在每一趟相邻元素比较之后,值要增加一,表示继续往下比较;

④表示每一趟比较中,比较相邻元素的次数。从算法思想可知第n趟的下面第n个元素是不参与继续比较的。

冒泡排序(更新)

冒泡排序(更新)


冒泡排序(更新)


⑤比较相邻元素大小,如果满足条件则交换两个元素的位置,其中变量”中间“值用于临时存储较大的数。

 



4.调用”冒泡排序“函数



 



以上是关于冒泡排序(更新)的主要内容,如果未能解决你的问题,请参考以下文章

第48题冒泡排序(更新中)

冒泡排序算法详解

算法通关手册 刷题笔记2 数组排序之冒泡排序选择排序

冒泡排序,选择排序,插入排序

董小姐花痴记——冒泡排序与选择排序

冒泡排序及优化