所属成套资源:信息技术沪教版选修1数据与数据结构全册备课PPT课件+教案+单元练习
信息技术2.尝试使用冒泡排序法实现商品销量排序优秀课件ppt
展开
这是一份信息技术2.尝试使用冒泡排序法实现商品销量排序优秀课件ppt,文件包含项目八第二课时pptx、项目八第二课时doc等2份课件配套教学资源,其中PPT共33页, 欢迎下载使用。
第五单元 排序与查找项目八 模拟实现商品排序——常用排序算法及其比较第二课时 尝试使用冒泡排序法实现商品销量排序 ❑教材分析本节的主要内容是尝试使用冒泡排序法实现商品销量排序。以生活中经常需要对某些数据进行查找和排序,如销售统计、商品查找等为主线,整个项目分为尝试使用插入排序法实现商品销量排序、尝试使用㴘泡排序法实现商品销量排序、尝试使用选择排序法实现商品销量排序、比较三种排序方法四部分。本课时的学习中,学生将尝试使用冒泡排序方法对模拟的网络购物平台中的店铺销售数据进行排序。在使用冒泡排序中的冒泡排序排序对6件商品销量数据进行排序的过程中,教材先给出了使用顺序存储结构下的排序示意图(部分),然后在活动中要求学生完成剩下的步骤示意图以及链式存储结构下的排序过程描述,并完成算法流程图设计和程序的编写,最后上机运行得出结果。本课时强调引导学生在理解、掌握三种排序方法的基础上,对它们的基本特点和稳定性进行分析。通过本课时的学习,学生能够掌握基本的排序方法,理解排序算法与数据结构的关系,从而学会根据实际问题选择恰当的算法完成数据的排序。本节课时将从身边熟悉的事例出发,带领学生探究各种排序和查找算法,在学习过程中体验迭代和递归的方法,并理解算法与数据结构的关系,进一步发展学生的计算思维和数字化学习与创新的能力。❑教学目标1.掌握常用的数据排序方法——冒泡排序;2.理解三种排序算法的特点。3.理解排序算法与数据结构的关系。4.能通过Python编程实现三种排序算法。5.培养学生的信息意识和计算思维能力。❑教学重点1.掌握常用的数据排序方法;2.理解排序算法与数据结构的关系。❑教学难点1.理解插入排序算法的特点;2.培养学生的信息意识和计算思维能力。❑教学方法体验法、讲授法、讨论法、示例法❑教学准备 计算机教室、多媒体设备、多媒体广播软件、Python编程环境、待排序的商品数据、教学课件等。❑教学过程一、新课导入回顾并提出问题:“使用插入排序法有哪些不足”。引出这节课的内容:冒泡排序法。 二、冒泡排序法1.核心概念冒泡排序(Bubble Sort),是一种计算机科学领域的较简单的排序算法。它重复地走访过要排序的元素列,依次比较两个相邻的元素,如果顺序(如从大到小、首字母从Z到A)错误就把他们交换过来。走访元素的工作是重复地进行直到没有相邻元素需要交换,也就是说该元素列已经排序完成。这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端(升序或降序排列),就如同碳酸饮料中二氧化碳的气泡最终会上浮到顶端一样,故名“冒泡排序”。 2.算法原理冒泡排序算法的原理如下:①比较相邻的元素。如果第一个比第二个大,就交换他们两个。②对每一对相邻元素做同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。③针对所有的元素重复以上的步骤,除了最后一个。④持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。 3.流程图 4.实例假设待排序序列为 (5,1,4,2,8),如果采用冒泡排序对其进行升序(由小到大)排序,则整个排序过程如下所示:
①第一轮排序,此时整个序列中的元素都位于待排序序列,依次扫描每对相邻的元素,并对顺序不正确的元素对交换位置,整个过程如图 1 所示。
图 1 第一轮排序(白色字体表示参与比较的一对相邻元素)
从图 1 可以看到,经过第一轮冒泡排序,从待排序序列中找出了最大数 8,并将其放到了待排序序列的尾部,并入已排序序列中。
②第二轮排序,此时待排序序列只包含前 4 个元素,依次扫描每对相邻元素,对顺序不正确的元素对交换位置,整个过程如图 2 所示。
图 2 第二轮排序可以看到,经过第二轮冒泡排序,从待排序序列中找出了最大数 5,并将其放到了待排序序列的尾部,并入已排序序列中。③第三轮排序,此时待排序序列包含前 3 个元素,依次扫描每对相邻元素,对顺序不正确的元素对交换位置,整个过程如图 3 所示。
图 3 第三轮排序
经过本轮冒泡排序,从待排序序列中找出了最大数 4,并将其放到了待排序序列的尾部,并入已排序序列中。
④第四轮排序,此时待排序序列包含前 2 个元素,对其进行冒泡排序的整个过程如图 4 所示。
图 4 第四轮排序经过本轮冒泡排序,从待排序序列中找出了最大数 2,并将其放到了待排序序列的尾部,并入已排序序列中。
⑤当进行第五轮冒泡排序时,由于待排序序列中仅剩 1 个元素,无论再进行相邻元素的比较,因此直接将其并入已排序序列中,此时的序列就认定为已排序好的序列(如图 5 所示)。
图 5 冒泡排序好的序列 5.运用Python实现123456789def bubble_sort(nums): for i in range(len(nums) - 1): # 这个循环负责设置冒泡排序进行的次数 for j in range(len(nums) - i - 1): # j为列表下标 if nums[j] > nums[j + 1]: nums[j], nums[j + 1] = nums[j + 1], nums[j] return nums print(bubble_sort([45, 32, 8, 33, 12, 22, 19, 97]))# 输出:[8, 12, 19, 22, 32, 33, 45, 97] 三、尝试使用冒泡排序法实现商品销量排序若采用冒泡排序法,则将这些销量数据看成水里的气泡,数字大小表示气泡的轻重,最先冒出最轻的(最小数)、第二次冒出第二轻的,以此类推,如图5-4所示,图中斜线下是无序的,斜线上是已冒出的有序的。实现冒泡的方法:从序列最后两个元素开始比较,只要后面元素小,则交换交换上去的再与最后第三个元素比较,以此类推,这样两两相邻元素比较就冒出当前最小元素。图5-4采用数组的冒泡排序过程思考与讨论?1.用小的数上冒可以完成排序,那用大的数下沉能完成排序吗?能。2.冒泡排序在链式存储结构下的排序过程有何不同?建议教师引导学生主要从以下两个方面思考。①若使用单链表,一般从链表首开始,使用大数下沉的方法比较合适。②链式存储结构中,交换的不是元素的值,而是通过修改指针,改变结点的先后顺序。 四、课堂活动在以下流程图(局部)框中完成冒泡排序算法(设数据在r数组中,n为元素个数),并编程实现,上机运行测试。 参考答案:程序:r=[21,25,49,25,16,8]i=0while i<5:j=5while j>=1:if r[j]<r[j-1]:temp=r[j]r[j]=r[j-1]r[j-1]=tempj=j-1i=i+1for e in r: Print(e)
相关课件
这是一份信息技术选修1 数据与数据结构5.3 数据排序课文配套ppt课件,共1页。
这是一份沪教版(2019)2.体验使用二分查找法查找商品精品ppt课件,文件包含项目九第二课时pptx、项目九第二课时doc等2份课件配套教学资源,其中PPT共44页, 欢迎下载使用。
这是一份高中信息技术沪教版(2019)选修1 数据与数据结构3.尝试使用选择排序法实现商品销量排序精品课件ppt,文件包含项目八第三课时pptx、项目八第三课时doc等2份课件配套教学资源,其中PPT共37页, 欢迎下载使用。