每日观察!冒泡排序算法任务单

2023-02-28 07:49:34 来源: 程序员客栈

说在前面

冒泡排序是经典排序算法之一,它通过对相邻两个元素依次进行比较和调整,让较大的元素“下沉”,较小的元素“上浮”来实现排序功能。冒泡排序的原理比较简单,一般经过教师的演示以后,学生都能根据指定的排序要求和扫描方向,写出每趟排序的过程。

难点在于算法的代码实现。冒泡排序的核心代码是一个二重循环,其中内层循环描述了每轮排序的过程,根据扫描范围或方向的不同组合,可以产生各种不同的代码实现。如果学生不理解变量的含义,只会死记硬背的话,就容易产生张冠李戴的错误。如何让学生在纷繁复杂的变例拓展中抓住算法本质,是一个亟需解决的教学难题。


(相关资料图)

正确理解代码的关键在于明确变量的含义。运行一段程序就好比讲述一个故事,每个代码段都对应一个故事情节,关键变量就是故事中的主人公。变量的含义不同,其所在代码段的功能也就不一样。具体到冒泡排序算法,其核心代码是一个二重循环,赋予外层循环变量i不同的含义,我们就可以从不同的角度叙述冒泡排序的故事。

冒泡排序算法任务单(学生版):

任务1. 经典冒泡排序算法。

已知数组d的初始值为[3, 2, 5, 4, 6, 1],采用冒泡排序算法对其进行从小到大排序。

(1)若采用向右扫描方式将最大值“冒泡”到右端,请写出每一趟排序后数组d的值。

(2)若采用向左扫描方式将最小值“冒泡”到左端,请写出每一趟排序后数组d的值。

(3)若采用向右扫描方式将最大值“冒泡”到右端,已知数组d的长度为n,请问总共需要排序多少趟?每趟比较次数分别为多少?总共比较次数为多少?

(4)教材p131给出了采用向右扫描方式将最大值“冒泡”到右端的算法流程图和代码实现。但是由于排版的原因,代码实现与流程图并不完全一致(变量名称不同),请修改代码,使其与流程图保持一致,分别用for循环和while循环语句来实现程序功能。

(5)若采用向左扫描方式将最小值“冒泡”到左端,请分别用for循环和while循环语句实现程序功能。体会将最小元素“上浮”和最大元素“下沉”两种方式在程序实现中的区别。

任务2. 冒泡排序优化。

经典的冒泡排序算法,对长度为n的数组需要排序n-1趟。

例如,对数组a=[5,1,3,4,2,6,7,8],需要向右扫描排序7趟,每趟排序结果如下:

第1趟:[1,3,4,2,5,6,7,8]

第2趟:[1,3,2,4,5,6,7,8]

第3趟:[1,2,3,4,5,6,7,8]

第4趟:[1,2,3,4,5,6,7,8]

第5趟:[1,2,3,4,5,6,7,8]

第6趟:[1,2,3,4,5,6,7,8]

第7趟:[1,2,3,4,5,6,7,8]

(1)仔细观察排序过程,我们可以发现第3趟冒泡后数组已经有序,后面4趟排序实际上没有做任何交换操作。当数组已经有序时,能否提前结束排序,不再做无必要的扫描?我们可以设置一个标记变量flag来标记某趟排序过程中是否发生了交换操作,若无交换操作,表示已完成排序,退出循环。

参考代码如下,请将缺失的代码补充完整。

def bubble_sort_3(a):

for i in range(1, len(a)):

swapFlag = False #先假设未做交换操作

for j in range(len(a)-i):

if a[j] > a[j+1]:

a[j], a[j+1] = 填空1

swapFlag = 填空2 #设置交互操作标志

if 填空3: #无交换操作,表示已完成排序,退出循环

break

(2)当采用向右扫描方式将最大值“冒泡”到右端时,经典的代码实现是设置二重for循环,其中外层循环变量i记录排序趟数,内层循环变量j记录当前元素的下标。

其实我们也可以从另一个角度来理解冒泡排序算法:假设当前数组中待排序序列为a[0:r+1],其中r是序列的右边界;每趟排序都是从最左端开始向右扫描待排序区域,将最大值“冒泡”到a[r]处;r的初始值为len(a)-1,每完成一趟排序,就令r=r-1;当r=0时,待排序序列中只有一个元素,排序结束。

参考代码如下,请将缺失的代码补充完整。

def bubble_sort_4(a):

for r in range(len(a)-1, 0, -1):

for j in range(填空1):#向右扫描,将最大值冒泡到a[r]

if 填空2 :

a[j], a[j+1] = a[j+1], a[j]

(3)使用函数bubble_sort_4(a)对数组a=[5,1,3,4,2,6,7,8]排序,每趟排序只让右边界r左移1位,总共需要排7趟。

观察排序过程,分析第一趟排序时,哪些元素的位置没有变化?最后一次交换操作发生在哪两个元素之间?。

一般情况下,每排序一趟就将右边界r左移一位,能否在某趟排序之后,直接将右边界移动到正确位置,以快速缩小下一趟排序的扫描范围?

我们可以设计一个冒泡排序的优化算法,通过记录最后一次发生交换操作的位置,把它作为下一趟排序的右边界,实现快速缩减扫描范围的目的。

参考代码如下,请将缺失的代码补充完整。

def bubble_sort_5(a):

right = len(a)-1

while 填空1:

swapPos = 0 #先假设最后一次发生交换操作的位置为0

for j in range(right): #顺序扫描a[0:right]

if a[j] > a[j+1]:

a[j], a[j+1] = a[j+1], a[j]

swapPos = 填空2 #记录发生交换操作的位置

right = 填空3

(4)向右扫描时,可以设置右边界,通过更新右边界,实现快速缩减扫描范围的目的。那么,能否在向左扫描时,通过快速更新左边界来提高程序效率呢?请模仿函数bubble_sort_5(a),编写向左扫描数组将最小值“冒泡”到左端的冒泡排序优化算法。

(5)既然向右扫描时可以设置右边界,向左扫描时可以设置左边界,分别都可以快速缩小扫描范围。那么能否更进一步,在内层循环中向左、向右各扫描一次,分别设置左、右边界呢?

当然可以。这种算法被称为双向冒泡排序,又称鸡尾酒排序,每轮扫描下来可以更新左、右边界,快速减少扫描范围,提高了程序效率。

参考代码如下,请将缺失的代码补充完整。

def bubble_sort_7(a):

left, right = 0, len(a)-1

while 填空1:

swapPos = left #先假设最后一次发生交换操作的位置为left

for j in range(left,right): #顺序扫描a[left:right]

if a[j] > a[j+1]:

a[j], a[j+1] = a[j+1], a[j]

swapPos =填空2

right =填空3

for j in range(right,left,-1): #逆序扫描a[left+1:right+1]

if a[j] < a[j-1]:

a[j],a[j-1] = a[j-1],a[j]

swapPos =填空4

left =填空5

总结:

冒泡排序算法采用双重for循环嵌套来实现,外层循环用来控制排序轮次(或待排序区间左边界),内层循环通过交换相邻元素的方式,将较小值向左侧冒泡。在每一轮排序结束后,都要把最小值冒泡到待排序区间最左端。

冒泡排序的比较次数与待排序元素的初始状态无关,共需要进行的比较次数是(n–1)+(n–2) + … +2+1 = n*(n–1)/2 。

冒泡排序的交换次数与待排序元素的初始状态有关,序列中逆序对的数量就等于排序过程中的交换次数。

可以使用设置交换操作标记、快速缩小右边界和双向冒泡排序等优化方法来提高冒泡排序的效率。

需要本文word文档、源代码和课后思考答案的,可以加入“Python算法之旅”知识星球参与讨论和下载文件,“Python算法之旅”知识星球汇集了数量众多的同好,更多有趣的话题在这里讨论,更多有用的资料在这里分享。

我们专注Python算法,感兴趣就一起来!

相关优秀文章:

阅读代码和写更好的代码

最有效的学习方式

Python算法之旅文章分类

标签: 冒泡排序 扫描方式 扫描范围

上一篇 :

下一篇 :

每日观察!冒泡排序算法任务单

说在前面冒泡排序是经典排序算法之一,它通过对相邻两个元素依次进行比较和调整,让较大的元素“下沉”...

02-28 07:49:34

斗罗大陆小狂系列共几个_斗罗大陆小狂|每日热文

1、【魂环】:紫紫黑黑黑黑黑红红(9环封号斗罗,顶级七考提升前为黄,黄,紫,紫,黑,黑,黑,红,红)

02-28 02:58:13

世界最资讯丨维修电工知识与技能_维修电工知识

1、1 遵守电气安全技术操作规程《通则》有关规定。2、2 不准在设备运行过程中拆卸修理,必须停运并切...

02-27 22:44:11

如何清洗洗衣机的方法妙招_如何清洗洗衣机|观点

1、洗衣机是帮助我们清洁衣物的电器,我们在用它清洁的时候也不能忽视对于洗衣机自身的清洁。2、长期使...

02-27 22:07:59

当日快讯:华兰疫苗:吸附破伤风疫苗获药品注册证书|独家焦点

华兰疫苗2月27日公告,公司收到国家药品监督管理局批准颁发的吸附破伤风疫苗《药品注册证书》,吸附破伤...

02-27 20:06:12

教材解读与拓展:8年级物理_关于教材解读与拓展:8年级物理简介

1、《万向思维·(2015年春季)教材解读与拓展:八年级物理(下册)(北师大版)》涵盖:74个教材必学知识点、162

02-27 17:42:01

三国大穿越之孰强孰弱-环球新要闻

1、《三国大穿越之孰强孰弱》是大侠留步创作的网络小说。文章到此就分享结束,希望对大家有所帮助。

02-27 16:50:55

开颌手术_开颌

1、上、下牙咬紧的时候,有部分牙齿不能咬紧,中间留有间隙,这种情况称为开殆畸形。2、开殆一般分为三...

02-27 16:02:44

潢川高中2022年高考成绩单_潢川高中

1、潢川高级中学始创于一九零五年,一所有着100多年光荣历史的名校,历来被誉为“豫南文化和革命的摇篮...

02-27 14:03:56

暴太郎战队咚兄弟VS机界战队全开者剧照公开?双男主解锁新形态|全球通讯

暴太郎战队咚兄弟VS机界战队全开者相关剧场版方面的官方剧照图透有所正式透露和公开,通过这次的图透大...

02-27 11:46:14

上海多伦路文化街

1、多伦路文化名人街作为虹口区“抢救文化遗产、保护故居遗址”的标志性文化工程,成为上海都市文化旅游...

02-27 11:17:25

光大期货【国债】:资金面波动加大 短债偏弱长债震荡 焦点消息

1、债市表现:2月份资金面波动明显加大,一是票据利率持续偏强显示信贷需求较好,对狭义流动性形成一定...

02-27 10:05:38

华安证券给予芯碁微装买入评级-资讯推荐

每经AI快讯,华安证券02月27日发布研报称,给予芯碁微装(688630 SH,最新价:86 68元)买入评级。评级理由

02-27 08:14:55

上阿特巴拉水利枢纽

1、苏丹上阿特巴拉水利枢纽项目,位于苏丹东部的卡萨拉州与加达里夫州交界处,距首都喀土穆公路距离约46...

02-27 05:38:18

70岁祝寿词_70岁祝寿词有哪些-简讯

欢迎观看本篇文章,小升来为大家解答以上问题。70岁祝寿词,70岁祝寿词有哪些很多人还不知道,现在让我...

02-27 04:02:38

如何做做一名合格的党员_做一名合格的党员

1、提高自己的人格修养2、加强党的理论学习3、加强业务学习4、要多实践。2、不能做空头的理论家5、多给...

02-26 23:17:39

世界旅游文化 英文版_环球热闻

1、《世界旅游文化(英文版)》是2011年7月1日北京大学出版社出版的图书,作者是冯源。2、。文章到此就...

02-26 20:16:31

环球观天下!天宫二号发射成功是几年几月几日_天宫二号

1、分析称天宫一号验证技术天宫二号为目标型号  新浪航天讯今年10月27日,中国载人空间站工程正式启动...

02-26 20:08:19

房屋知识科普:现在广州地二手房的产权证怎么办理谁知道呢

房产方面的知识对于多数小伙伴们是一般都不太懂的,那么如今买房卖房这当中都会存在着很多的问题的,那...

02-26 16:56:45

新金瓶梅演员表

1、《新金瓶梅3D》既还原了原著中众多人物的本来面貌,又赋予现代人最前卫、最真实的审美观念,不仅首次...

02-26 14:56:09

火车票改签后可以退票吗退票手续费多少钱_火车票改签后可以退票吗

1、可以在网上改签退票,但是要收取一定的手续费。2、在开车前48小时至15天内,将列车变更为另一趟已开1...

02-26 14:02:29

易泽林_对于易泽林简单介绍-全球微速讯

1、易泽林,男,汉族,四川仁寿人。硕士,副研究员,硕士生导师。2、中国作物学会种子专委会会员、重庆...

02-26 10:39:45

【天天报资讯】中卫市家政服务行业协会

1、中卫市家政服务行业协会成立于2019年2月27日,是经中卫市民政局批准成立的地方性、行业性和非营利性...

02-26 09:47:28

LouisVuitton:图案与未来元素相结合,创造了大胆精致的外观|世界热点评

路易威登2021年秋冬时装秀是一个值得纪念的事件,展示了一个既创新又优雅的系列,秀场在法国巴黎卢浮宫...

02-26 07:38:42

中国对外直接投资企业竞争力研究

1、《中国对外直接投资企业竞争力研究》是2021年山东大学出版社出版的图书。2、。文章到此就分享结束,...

02-26 04:08:05

auditt发动机_auditt_天天快消息

1、第二代奥迪信息娱乐系统平台模块(M|B2),首次是在AUdiTT上采用,一般用缩写。2、称之为MlB2。以上就是【a

02-26 02:11:58

怎么把Word中的文字进行突出显示_怎么把word突出显示的文字给挑出来呢_环球快资讯

1、在WPSOffice软件中打开文档,选择文本,单击开始列下的突出显示,在下拉列列表中选择颜色以在Word中突出显示

02-25 20:56:08

以房养老_全球微资讯

1、以房养老是依据拥有资源,利用住房寿命周期和老年住户生存余命的差异,对广大老年人拥有的巨大房产资...

02-25 18:50:03

日本首相岸田文雄称将全力应对少子化问题-世界资讯

本文转自【央视新闻客户端】;当地时间25日,日本首相岸田文雄在自民党的会议上强调,将采取措施全力应...

02-25 17:11:13

初中毕业上什么学校好_适合初中毕业生读的学校-关注

欢迎观看本篇文章,小升来为大家解答以上问题。初中毕业上什么学校好,适合初中毕业生读的学校很多人还...

02-25 14:19:08

中老年学电脑从入门到精通 视频讲解+图解+技巧 环球关注

1、《中老年学电脑从入门到精通(视频讲解+图解+技巧)》是由2011年1月机械工业出版社出版的图书。2、...

02-25 13:14:56

【新视野】火线追凶之狂魔再现_关于火线追凶之狂魔再现的基本详情介绍

1、《火线追凶之狂魔再现》是由央视电影频道节目中心出品,胡明凯执导,钟汉良、释小龙、齐芳等主演的一...

02-25 11:09:12

王濛经纪公司再次声明:工作室声明中存在失实内容误导公众 环球热头条

2月24日,王濛新媒体领域独家经纪公司今日再次发布声明,声明表示:王濛工作室声明中存在失实内容误导公...

02-25 08:53:51

为姚公绶题飞白竹 世界快报

1、《为姚公绶题飞白竹》是明代张宁创作的一首五言绝句。文章到此就分享结束,希望对大家有所帮助。

02-25 07:53:35

世界报道:心积水肺积水是怎么引起的_肺积水是怎么引起的

1、引起积液的原因很多,临床上也叫胸腔积液。2、是各种原因使胸腔内液体形成过快或吸收过慢,导致胸腔...

02-25 05:05:00

股票行情快报:汇纳科技(300609)2月24日主力资金净卖出376.07万元

截至2023年2月24日收盘,汇纳科技(300609)报收于18 97元,下跌0 21%,换手率1 45%,成交量1 37万手,成交额2619 04万元。

02-25 00:20:19

世界微头条丨血气分析

1、血气指血液中的气体,主要是氧气(O₂)和二氧化碳(CO₂)。2、呼吸过程中人体从外界摄取氧气,将代...

02-24 22:29:14

世界微资讯!国乒直通赛落幕:马龙、孙颖莎率先获得世乒赛单打资格

人民网北京2月24日电(记者李乃妍)北京时间2月23日晚,国乒2023年首站直通赛正式落下帷幕,三项冠军已...

02-24 21:03:47

环球热资讯!刘姥姥打秋风是什么意思_打秋风是什么意思

1、“打秋风”,意谓“因人丰富而抽索之”,故而也叫“打抽丰”,即指假借名义、利用关系向人索取财物或...

02-24 18:49:38

环球新资讯:业绩快报:中科美菱2022年净利润5258.69万 同比下降22.09%

中科美菱发布业绩快报,2022年实现营业总收入4 06亿元,同比下降12 64%;归属于母公司股东的净利润525...

02-24 17:01:05

于令达_世界快资讯

1、于令达。2、男。3、中国科学院大学专任教师。文章到此就分享结束,希望对大家有所帮助。

02-24 16:43:08

怎么看待ChatGPT?科技部回应具体详细内容是什么_每日热讯

怎么看待ChatGPT?科技部回应今天的热度非常高,现在也是在热搜榜上了,那么具体的怎么看待ChatGPT?科...

02-24 14:57:06

公考打破“35岁门槛”,消除职场年龄歧视

目前,全国已有近30个省份启动了2023年度公务员省考招录,其中27个省份将在本周末拉开考试的序幕。备受...

02-24 13:59:19

走进区域看发展|让精美的石刻“说话” “大足雕客”创出大市场

重庆市大足区因大足石刻而闻名世界,图为以重庆大足石刻卧佛摩崖造像为原型创作的石刻作品。中国网记者...

02-24 11:14:17

遮阳篷的适当角度_天天热议

遮阳篷为建筑物增添美感。遮阳篷不仅是增添建筑物美感的建筑设备,而且还是调节建筑物内部温度的重要因...

02-24 10:00:28

上市不满一年半,锂电企业珠海冠宇业绩“变脸”,去年净利润大降超90%

珠海冠宇近年综合毛利率每年大降一个台阶。记者|张艺上市不满一年半,锂电池企业珠海冠宇(688772 SH)业...

02-24 07:30:58

全球焦点!沈阳普通话考试报名条件

测试对象及范围辽宁省语言文字应用中心测试站接受以下5类应试者网上报名,请应试者认真对照报名条件,谨...

02-24 03:03:08

S4诅咒巨魔特朗德尔出装 热门看点

1、诅咒巨魔现在还不错,但是有一个很糟糕的问题就是清兵能力不足。今天我就告诉你一个解决这个问题的加...

02-23 23:00:54

热头条丨扶贫双到

1、“双到”是指:规划到户责任到人。扶贫双到的概念是由广东省在中国扶贫计划中创造出来的,具体是在扶...

02-23 19:52:17

艾可蓝:池州南鑫拟减持不超20.25万股公司股份

艾可蓝2月23日公告,公司股东池州南鑫持有公司336 54万股股份(占公司总股本的4 2%),计划自本公告披露...

02-23 17:15:27

斗罗大陆小狂系列共几个_斗罗大陆小狂|每日热文
世界最资讯丨维修电工知识与技能_维修电工知识
如何清洗洗衣机的方法妙招_如何清洗洗衣机|观点
当日快讯:华兰疫苗:吸附破伤风疫苗获药品注册证书|独家焦点
教材解读与拓展:8年级物理_关于教材解读与拓展:8年级物理简介
三国大穿越之孰强孰弱-环球新要闻
开颌手术_开颌
潢川高中2022年高考成绩单_潢川高中
暴太郎战队咚兄弟VS机界战队全开者剧照公开?双男主解锁新形态|全球通讯
上海多伦路文化街
光大期货【国债】:资金面波动加大 短债偏弱长债震荡 焦点消息
华安证券给予芯碁微装买入评级-资讯推荐
上阿特巴拉水利枢纽
70岁祝寿词_70岁祝寿词有哪些-简讯
如何做做一名合格的党员_做一名合格的党员
世界旅游文化 英文版_环球热闻
环球观天下!天宫二号发射成功是几年几月几日_天宫二号
房屋知识科普:现在广州地二手房的产权证怎么办理谁知道呢
新金瓶梅演员表
火车票改签后可以退票吗退票手续费多少钱_火车票改签后可以退票吗
易泽林_对于易泽林简单介绍-全球微速讯
【天天报资讯】中卫市家政服务行业协会
LouisVuitton:图案与未来元素相结合,创造了大胆精致的外观|世界热点评
中国对外直接投资企业竞争力研究
auditt发动机_auditt_天天快消息
怎么把Word中的文字进行突出显示_怎么把word突出显示的文字给挑出来呢_环球快资讯
以房养老_全球微资讯
日本首相岸田文雄称将全力应对少子化问题-世界资讯
初中毕业上什么学校好_适合初中毕业生读的学校-关注
中老年学电脑从入门到精通 视频讲解+图解+技巧 环球关注
【新视野】火线追凶之狂魔再现_关于火线追凶之狂魔再现的基本详情介绍
王濛经纪公司再次声明:工作室声明中存在失实内容误导公众 环球热头条
为姚公绶题飞白竹 世界快报
世界报道:心积水肺积水是怎么引起的_肺积水是怎么引起的
股票行情快报:汇纳科技(300609)2月24日主力资金净卖出376.07万元
世界微头条丨血气分析
世界微资讯!国乒直通赛落幕:马龙、孙颖莎率先获得世乒赛单打资格
环球热资讯!刘姥姥打秋风是什么意思_打秋风是什么意思
环球新资讯:业绩快报:中科美菱2022年净利润5258.69万 同比下降22.09%
于令达_世界快资讯
怎么看待ChatGPT?科技部回应具体详细内容是什么_每日热讯
公考打破“35岁门槛”,消除职场年龄歧视
走进区域看发展|让精美的石刻“说话” “大足雕客”创出大市场
遮阳篷的适当角度_天天热议
上市不满一年半,锂电企业珠海冠宇业绩“变脸”,去年净利润大降超90%
全球焦点!沈阳普通话考试报名条件
S4诅咒巨魔特朗德尔出装 热门看点
热头条丨扶贫双到
艾可蓝:池州南鑫拟减持不超20.25万股公司股份
【全球聚看点】中路B股(900915)2月23日游资资金净卖出3.54万元
X 广告
资讯
X 广告

Copyright ©  2015-2022 大众畜牧网版权所有  备案号:豫ICP备20014643号-14   联系邮箱: 905 14 41 07@qq.com