高中信息技术_冒泡排序算法教学设计学情分析教材分析课后反思

合集下载

5.3冒泡排序算法思想-浙江省桐庐分水高级中学高中信息技术浙教版选修1教学设计

5.3冒泡排序算法思想-浙江省桐庐分水高级中学高中信息技术浙教版选修1教学设计
教学方法/手段/资源:
- 自主学习法:引导学生自主完成作业和拓展学习。
- 反思总结法:引导学生对自己的学习过程和成果进行反思和总结。
作用与目的:
- 巩固学生在课堂上学到的冒泡排序算法思想知识点和技能。
- 通过拓展学习,拓宽学生的知识视野和思维方式。
- 通过反思总结,帮助学生发现自己的不足并提出改进建议,促进自我提升。
- 提供拓展资源:提供与冒泡排序算法思想相关的拓展资源(如书籍、网站、视频等),供学生进一步学习。
- 反馈作业情况:及时批改作业,给予学生反馈和指导。
学生活动:
- 完成作业:认真完成老师布置的课后作业,巩固学习效果。
- 拓展学习:利用老师提供的拓展资源,进行进一步的学习和思考。
- 反思总结:对自己的学习过程和成果进行反思和总结,提出改进建议。
学生活动:
- 听讲并思考:认真听讲,积极思考老师提出的问题。
- 参与课堂活动:积极参与小组讨论、角色扮演、实验等活动,体验冒泡排序算法的应用。
- 提问与讨论:针对不懂的问题或新的想法,勇敢提问并参与讨论。
教学方法/手段/资源:
- 讲授法:通过详细讲解,帮助学生理解冒泡排序算法的知识点。
- 实践活动法:设计实践活动,让学生在实践中掌握冒泡排序算法的技能。
(三)改进措施
1. 加强自主学习能力培养:通过提供更多的学习资源和方法指导,鼓励学生自主学习,培养学生的自主学习能力,提高学生的学习效果。
2. 多元化教学评价方式:引入多元化的教学评价方式,如项目作业、实验报告、小组讨论等,全面评价学生的综合能力和创新思维,促进学生全面发展。
3. 紧密联系实际应用:通过案例分析、实际项目引入等方式,加强教学内容与实际应用的结合,使学生更好地理解算法的实际应用和价值,提高学生的学习兴趣和主动性。

冒泡排序教学设计

冒泡排序教学设计
print(is_sorted(sorted_array)) # 应输出 True
print(is_sorted(unsorted_array)) # 应输出 False
```
答案:True, False
例题5:给定一个整数数组,编写一个冒泡排序的变种,使得数组中的所有偶数都排在所有奇数之前,但不需要对偶数或奇数内部进行排序。
```
for i from 0 to n-1
for j from 0 to n-i-1
if array[j] > array[j+1]
swap(array[j], array[j+1])
```
- Python代码示例:
```python
def bubble_sort(arr):
n = len(arr)
```
解答:这个冒泡排序代码的时间复杂度是O(n^2)。外层循环运行n次,内层循环平均运行n/2次,所以总的运行次数约为n*(n/2),即O(n^2)。
例题3:给定一个整数数组[5, 1, 4, 2, 8],请使用冒泡排序算法对其进行排序,并输出每轮排序的结果。
解答:
```python
def bubble_sort(arr):
- 遍历序列:从第一个元素开始,比较相邻的两个元素。
- 交换元素:如果相邻的两个元素顺序错误,即前者大于后者,则交换它们的位置。
- 标记有序:如果一轮比较中没有发生任何交换,说明序列已经有序,将布尔变量设为true。
- 结束条件:当布尔变量为true时,排序结束。
3. 冒泡排序的代码实现
- 伪代码:
- 提出问题:引导学生思考日常生活中排序的例子,如排队、整理物品等,并提问:“计算机是如何进行排序的?”

高中信息技术《冒泡法排序》教案(doc文档)

高中信息技术《冒泡法排序》教案(doc文档)

课题排序算法实现——冒泡法排序【教学目标】知识与技能1、掌握冒泡法排序的基本思路。

2、通过程序的实现进一步理解冒泡排序的意义和特点。

3、提高学生综合运用各种基本语句的能力。

过程与方法1、通过实例,体会冒泡法排序的基本过程。

2 、体验探究学习的过程,获得成功学习的快乐。

情感态度与价值观1 、感受利用程序来解决问题的全过程,增强利用程序解决问题的自信心。

2 、激发学生进一步学习算法和VB程序的热情。

【教学重点难点】冒泡过程的数学模型,一轮冒泡的分解,一轮冒泡的程序实现。

【教学方法】提问启发,任务驱动,讨论探究,循序渐进。

【教学思路】教师线索:引入问题——分析冒泡算法数学模型——指导程序实现——总结提升学生线索:获得情感需求——思考实现方法——分解步骤逐步实现程序——总结提高设计思想冒泡程序的实现是本章的一个教学重点和也是教学难点,如何设计好教学过程,使学生通过本堂课的学习掌握其程序的代码实现,并从中领悟出程序设计的基本方法和步骤,是我在教学设计时重点思考的内容。

一个好的教学设计应该遵循建构主义的思想,力主在学生原有知识的基础上,根据学生认知发展的规律,逐步递增新知识内容,使新旧知识相互作用,重组认知结构。

因此在设计时,本着由简入烦,由具体到抽象,由已知到未知的思想,循序渐进,有步骤、有计划地展开教学过程。

导课环节以NBA数据表的处理引入排序在日常生活中的实际应用,激发学生学习的兴趣;整个程序包括程序的输入、冒泡算法的程序实现、输出部分。

激发学生的原有知识,引导学生自主完成输入、输出部分,让学生获得成就感和自信心。

冒泡算法的程序实现是本堂的重点内容,以4个数的排序为例展开教学,使问题尽可能的简单化和具体化,这是为了适应现阶段学生的认识水平,放低难度,使大部分学生都能完成程序的编写,也符合认知的就近原则;在交换代码的实现中,引入第三个杯子实现两个杯子内液体的互换过程为例,以易于学生理解的方式,促进学生的选择性知觉,也体现了由具体到抽象的设计思想;最后,通过拓展提高练习,有效实现分层教学,加深了学生对冒泡实现的理解,并通过它可以抽象出n个数进行冒泡排序的实现,从而达成本节课的教学目的,使学生完全掌握冒泡排序的程序实现。

高中信息技术_《用循环的思想解决问题—冒泡排序》教学设计学情分析教材分析课后反思

高中信息技术_《用循环的思想解决问题—冒泡排序》教学设计学情分析教材分析课后反思

“用循环的思想解决问题—冒泡排序”教学设计【学习目标】1 熟练掌握for循环嵌套2 理解冒泡排序的思想3 学会用程序实现排序算法【重点】用循环嵌套的思想解决问题【难点】冒泡排序的算法一、回顾上节课所学的循环案例(1)、Sum=1!+2!+3!…+i!…+n!3用递归函数实现For i=1 to ns=s+f(i)Next i递归函数function 函数名(变量as类型)as类型Function f(n As Integer) As Integer If n = 0 Thenf = 1Elsef = n * f(n - 1)End IfEnd Function(2)打印字符图形二、循环思想在冒泡中的应用6.8 89 16.8 72.8 120 17.2 63 9.81在这些数据中,先找出最大值2在剩余的数中,在找出最大值3重复2,一直到剩下一个数,即完成了排序——如何求n个数最大值?a(1) a(2) a(3) a(4) ……a(n)首先a(1) a(2)比较,最大值存放在a(2)中然后a(2)a(3),比较,最大值放在a(3)中以此类推,一直到a(n-1)和a(n)比较,最大值放在a(n)中推论:利用a(i)>a(i+1)为判断条件,当条件成立,两个数交换值,否则进行下一轮比较如下图所示:课堂实践18名学生分别代表a(1)……a(8),分别存储6.8 89 16.8 72.8 120 17.2 63 9.8以其他学生为导演,展示两两相比,交换的过程,如图研究第i轮时:总结冒泡排序的思路:课堂实践2:完善“冒泡”程序,调试并运行附参考代码:Private Sub Command1_Click() '选择排序——从小到大排序Text1.Text = ""Text2.Text = ""Dim i, j As IntegerDim t, a(1 To 100) As Single '定义数组,相当于定义a(1) a(2)……a(10)n = InputBox("请输入n的值", "输入n", "")For i = 1 To n Step 1a(i) = InputBox("请输入第" & i & "个数字", "标题_输入数据", "") '输入数据到数组中Next iFor i = 1 To nText1.Text = Text1.Text & a(i) & " " '把输入的数据串起来,在text1.text输出Next i'冒泡排序For i = 1 To n-1For j = 1 To n - iIf a(j) > a(j + 1) Thent = a(j)a(j) = a(j + 1)a(j + 1) = tEnd IfNext jNext i'输出数据For i = 1 To nText2.Text = Text2.Text & a(i) & " " '把输入的数据串起来,在text1.text输出Next iEnd Sub三、参考资料1.Dim 变量名 as 变量类型(integer、long、single、double、string、boolean、date)如:dim x as ingeger 定义整形的变量xDim x,y,z as double 定义双精度实数变量 x y z2.If 条件 then 语句1 else 语句2If 条件 then语句1语句2……语句nEndif1、 If 条件表达式then 语句1 else语句22、If 条件表达式then语句23例如:求两个数的最大值(设定 a b max 三个single 类型的变量)4★★★ For i=初始值 to 终点值 step 步长黑箱子Next i循环变量i初始值向终点值进军,每一步走一个步长For i=1 to 100 step 1(可以省略)黑箱子Next iFor i=100 to 19 step -10黑箱子Next i5、Do while 条件表达式语句块6.★★★Dim s(1 To 8) As String '定义字符串数组s(1)、s(2)……s(8),8个变量★★★New_password=””new_password = new_password + s(i) '把新字符串到新密码上new_password = new_password + s(i)学情分析学生已经学过循环、选择、顺序结构,能够编写调试简单的vb程序,能够根据生活具体需要,设计简单算法,也初步学会用两重循环、三重循环的思想来解决问题,但学生只是基于半成品的程序近似于填空的方式进行实践,距离独立的完整的用代码实现生活中的问题,还有一段距离,所以课堂上还是设计简单一点的填空似的调试,把算法的各个重要环节跟学生讲清楚效果分析一堂课下来,对于冒泡排序的思想,学生基本上都能掌握,但具体操作实践,还有写欠缺,其中反映在下面几个方面:有一小部分同学课堂上听会了,眼高手低,不能按时完成实践任务;有些学生语法不熟,出现书写语法的错误;还有极个别学生算法未能真正掌握。

高中信息技术_冒泡排序算法教学设计学情分析教材分析课后反思

高中信息技术_冒泡排序算法教学设计学情分析教材分析课后反思

高一冒泡排序教学设计基本路线:数组-排序-冒泡排序【冒泡排序原理--流程图-算法优化】-小结一、教材分析:本节内容选自浙江教育出版社《算法与程序设计》第五章第三节。

本节课主要讲解冒泡排序思想。

排序算法是使用频率最高的算法之一,而冒泡排序是其中一种很典型而且相对简单的方法。

它的学习同时为后面的选择排序做了铺垫。

教学目标知识目标:掌握冒泡排序的原理;掌握冒泡排序的流程图;能力目标:学会使用冒泡排序思想设计解决简单排序问题的算法;进一步理解程序设计的基本方法,体会程序设计在现实中的作用;进一步学习流程框图的使用。

情感目标:增强分析问题、发现规律的能力,激发学习热情;学情分析通过前面的学习,学生已经了解vb算法设计的基本知识,学会利用自然语言和流程图描述解决问题的算法,对排序中循环语句以有了一定的基础。

但数组变量的使用方法尚未接触,程序设计思想比较弱,在实际生活中往往忽视运用排序算法来处理实际问题,这就要求学生通过本节课的学习,学会运用冒泡排序算法来处理实际问题,并为以后学习其它排序算法打下基础。

二、重点难点重点:理解冒泡排序原理及它的流程图难点:理解冒泡排序中的遍、次等概念(即对变量使用的理解)以及用流程图描述冒泡排序的过程三、教学策略与手段采用讲解法、演示法、分析归纳法引导学生参与思考,用逐步求精的方式降低学生的理解难度,化抽象为具体,由特殊到一般,有效地突出重点、突破难点。

四、课前准备1.教师的教学准备:冒泡排序的课件、学案、素材2.教学环境的设计与布置:多媒体网络教室、电子白板、多媒体教学平台等五、教学过程课前学习【设计意图】学生能自己学会的不讲。

排序数组知识点相对简单,由学生自学完成,之前的知识点学生可能会有所遗忘,通过这个方式让学生回顾。

冒泡排序算法原理比较容易也由学生自学完成。

已给出的素材,完成学案关于数组、冒泡排序和循环结构的基本模式的相关部分的内容,。

请同学们学习学习网站上的课前学习,并完成学案的相关部分的内容。

高中信息技术教科版选修1第三章4-1《冒泡法排序算法》省级名师优质课教案比赛获奖教案示范课教案公开课教案

高中信息技术教科版选修1第三章4-1《冒泡法排序算法》省级名师优质课教案比赛获奖教案示范课教案公开课教案

高中信息技术教科版选修1第三章第4-1课《冒泡法排序算法》省级名师优质课教案比赛获奖教案示范课教案公开课教

【省级名师教案】
1教学目标
1.知识与技能
(1)理解冒泡排序算法的原理和流程图
(2)学会编写程序实现算法
(3)了解自顶向下,逐步求精的程序设计方法
2.过程与方法
(1)通过对算法的分析和细化理解冒泡排序算法的思想,构造程序
(2)通过算法的设计与实现,了解自顶向下、逐步求精的程序设计方法
3.情感态度与价值观目标
(1)通过对问题的层层剖析,理清思路,培养学生严谨缜密的思考习惯
(2)通过问题解决体会由直观到抽象跨越的程序设计过程
2学情分析
(1)有一定的逻辑思维能力,具备一定的提出、思考和解决问题的能力,对于一个问题,能应用学过的知识进行简单分析。

(2)已经学习了程序设计的三种基本结构以及数组变量的使用,但由于实践少,知识连贯和综合应用能力不够。

表现为能理解设计算法的要求,但找不到解决问题的思路,独立编写程序就犯难,除了记忆性地罗列一些语句外,不知从何下手,不能形成明确的编程思路,难以完成直观到抽象的跨越。

3重点难点
1.教学重点
冒泡排序算法的基本思想和实现过程。

2.教学难点
构造程序实现冒泡排序算法。

4教学过程
教学活动
1【导入】引入本节主题。

高中信息技术_冒泡法排序算法教学设计学情分析教材分析课后反思

高中信息技术_冒泡法排序算法教学设计学情分析教材分析课后反思

《冒泡法排序算法》教学设计作者:课时:共2课时,本节为第1课时,理论课【适用年级】高二年级【所用教材】教科版《算法与程序设计》【教学目标】1、知识与技能:让学生了解排序及冒泡法排序的概念;掌握冒泡排序算法思想并学会用冒泡法对数据排序;初步掌握冒泡法排序的程序实现。

2、过程与方法:通过对冒泡排序过程和程序实现过程的分析,初步掌握用冒泡排序法来解决简单的排序问题。

3、情感目标:通过对冒泡排序算法过程的分析,培养学生设计程序解决实际问题的能力,激发学生对程序设计的兴趣,形成积极主动学习信息技术的态度。

【教学重点】1、冒泡法排序原理;2、运用冒泡法排序解决实际问题。

【教学难点】1、理解冒泡法排序中的轮与次等概念;2、如何用程序实现冒泡法排序算法【教学过程】一、创设情境,导入新课体验纸牌排序:先让一位同学上台将给定顺序的几张纸牌从小到大排列,完成后让其说一说进行排列的思路。

象这种解决问题的方法和步骤就是今天我们要学习的内容:冒泡法排序算法,从而引入课题。

设计意图:从生活实际入手,让学生通过体验排序,谈思路,知道冒泡法排序算法离我们并不远,也并不神秘,从而接进与学生的距离。

二、展示学习目标设计意图:让学生做到学习时心中有数。

三、新课开始(一)、剖析课题,初识冒泡法排序算法1、何谓算法?(回顾)设计意图:对前面所学知识回顾,进行情感教育,引导学生学习时只有温故知新,才能不断长进。

2、何谓排序?(自学)设计意图:本知识比较简单,学生一看就懂,让学生共同回答,目的是给学生学习的信心,并让学生知道,排序在计算机编程中使用非常频繁,并且排序算法有多种,为后面学习做准备。

3、何谓冒泡法排序?(自学)设计意图:讲之前先说明冒泡法排序在排序算法中的地位,是一种非常经典的排序算法,本知识也不难,学生一看就懂,也让学生共同回答,接着提出问题“如何将相邻元素进行比较和交换呢?”,让学生思考,从而转入下一个问题的学习。

(二)、冒泡法排序的思想(大声朗读)1、冒泡法排序的思想:从最下面(或最后面)一个元素(数据)开始,依次比较相邻的两个元素,较小的元素像气泡一样上浮,较大的元素下沉,第一轮找出最小值,第二轮找出次小值,依次类推……直接展示给学生,并让学生大声朗读。

冒泡排序教学设计

冒泡排序教学设计

冒泡排序教学设计、教材分析本节内容选自浙江教育出版社《算法与程序设计》第二章第三节和第五章第三节。

以第二章内容为主,下节课让学生进行第五章编写程序及上机实践。

《课程标准》指出《算法与程序设计》模块教学主要目的是“使学生进一步体验算法思想,了解算法和程序设计在解决问题过程中的地位和作用;能从简单问题出发,设计解决问题的算法,并能初步使用一种程序设计语言编制程序实现算法解决问题。

”冒泡排序的算法及程序实现就很好地较全面地体现了这点。

排序算法是使用频率最高的算法之一,而冒泡排序是其中一种很典型而且相对简单的方法。

它的学习同时为后面的选择排序做了铺垫。

通过冒泡实例的学习,可以提高学生的程序设计能力,为今后在算法与程序设计方面的进一步研究和学习打下基础。

二、学情分析通过前面的学习,同学们已经初步了解了算法设计的基本知识,学会了利用自然语言和流程图描述解决问题的算法,对排序中碰到的循环结构的流程图和循环语句以及数组变量的使用方法都已有基础。

但由于实践比较少,对以前知识的遗忘率比较高,画流程图还不太熟练,程序设计思想比较弱。

因此由浅入深,逐步引导比较适合学生的口味。

三、教学目标知识目标:掌握冒泡排序的原理;理解冒泡排序的流程图;编写冒泡排序的主要代码;能力目标:学会使用冒泡排序思想设计解决简单排序问题的算法;进一步理解程序设计的基本方法,体会程序设计在现实中的作用;情感目标:培养学生分析问题、发现规律的能力,激发学生学习热情;培养良好的程序书写习惯;四、重点难点重点:理解冒泡排序原理及它的流程图难点:理解冒泡排序中的遍、次等概念(即对变量使用的理解)五、课前准备教师的教学准备:冒泡排序的课件九、知识结构或板书设计用课件显示:1、各个流程图;2、主要参考代码十、教学反思(教学后补充)。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

高一冒泡排序教学设计
基本路线:数组-排序-冒泡排序【冒泡排序原理--流程图-算法优化】-小结
一、教材分析:本节内容选自浙江教育出版社《算法与程序设计》第五章第三节。

本节课主要讲解冒泡排序思想。

排序算法是使用频率最高的算法之一,而冒泡排序是其中一种很典型而且相对简单的方法。

它的学习同时为后面的选择排序做了铺垫。

教学目标
知识目标:掌握冒泡排序的原理;掌握冒泡排序的流程图;
能力目标:学会使用冒泡排序思想设计解决简单排序问题的算法;进一步理解程序设计的基本方法,体会程序设计在现实中的作用;
进一步学习流程框图的使用。

情感目标:增强分析问题、发现规律的能力,激发学习热情;
学情分析
通过前面的学习,学生已经了解vb算法设计的基本知识,学会
利用自然语言和流程图描述解决问题的算法,对排序中循环语句以有了一定的基础。

但数组变量的使用方法尚未接触,程序设计思想比较弱,在实际生活中往往忽视运用排序算法来处理实际问题,这就要求学生通过本节课的学习,学会运用冒泡排序算法来处理实际问题,并为以后学习其它排序算法打下基础。

二、重点难点
重点:理解冒泡排序原理及它的流程图
难点:理解冒泡排序中的遍、次等概念(即对变量使用的理解)以及用流程图描述冒泡排序的过程
三、教学策略与手段
采用讲解法、演示法、分析归纳法引导学生参与思考,用逐步求精的方式降低学生的理解难度,化抽象为具体,由特殊到一般,有效地突出重点、突破难点。

四、课前准备
1.教师的教学准备:冒泡排序的课件、学案、素材
2.教学环境的设计与布置:多媒体网络教室、电子白板、多媒体教学平台等
五、教学过程
课前学习【设计意图】学生能自己学会的不讲。

排序数组知识点相对简单,由学生自学完成,之前的知识点学生可能会有所遗忘,通过这个方式让学生回顾。

冒泡排序算法原理比较容易也由学生自学完成。

已给出的素材,完成学案关于数组、冒泡排序和循环结构的基本模式的相关部分的内容,。

请同学们学习学习网站上的课前学习,并完成学案的相关部分的内容。

上课!
对答案。

1、之前在巡视过程中拍到的学案内容传到电子白板。

师:同学们,我们刚才完成了学案上的一部内容。

来看一下同学们的成果。

我们给他掌声鼓励
2、排序的定义,请学生复述。

师:如果从已排序的2万个人中,查找一个人,用二分法查找,可以在15步以内完成;如果把地球上
的人排序后,查找一个人,用二分法查找我们可以在35步以内完成。

看起来排序是很重要的算法啊。

我们今天来研究排序算法中很经典、最简单的一种——冒泡排序。

这节课,我们以非递减的排序为例。

2分钟
4、师:现在我们齐声复述冒泡排序算法的思想
一、导入:观看视频
请大家看一段视频:
视频:《我是歌手》第三季第12期中名次揭晓片段。

教师:洪导所提到的算法确实如李健所说,是冒泡排序吗?
哪位同学站起来分析一下。

掌声。

李健,毕业于清华大学电子工程系,他所分析的这个不够准确,让人有点遗憾。

可是,他在毕业二十年后,听到排序后仍能脱口而出“冒泡法”,让我们也不由得感慨清华的教育。

正如爱因斯坦所说:当你把学校给你的东西都忘记以后剩下的就是教育,而我们恰恰是运
用剩下的东西去思考,去战胜困难,去创造我们的幸福。

知识忘记了,能力沉淀下来。

二、新课:
冒泡排序的思想:冒泡排序算法是把待排序的n个元素的数组看成是垂直堆放的一列数据,从最下面的一个元素起,自下而上地比较相邻的两个元素中的数据,将较小的数据换到上面、较大的数据放在下的。

重复这一过程,直到处理完最后两个元素中的数据,称为一遍加工。

1、现在请同学们来演绎一下的冒泡排序。

请同学们完成学案上的男星年龄的非递减排序。

可以参考冒泡排序上的视频或者文字材料。

学生:在纸上完成相关的表格。

师拍摄相关学生的表格,并传至电子白板展示正确结果及学生的完成情况。

4、小结:当一遍加工完成时,最小的数据已经上升到第一个元
素的位置。

由于每一遍加工都是将本遍最小的元素像气泡一样上浮至本遍的顶端位置,故称为冒泡排序。

课程进行到这里,同学们可能会有疑惑,这个冒泡排序笨且繁琐,明明一眼可以看出结果来,那如果我们要给几万个学生的考试成绩排序呢?张艺谋导演策划大型演出的现场要进行排序呢,图片PPT,或
者同学们也会考虑用EXCEL点一下排序就可以完成,那个排序按钮正是由这样的一类法编成计算机程序来实现的。

这就像父母给我们的爱,我们的司空见惯,背后都是父母的良苦用心;哪有什么岁月静好,不过是有人替我们负重前行。

导学案上给出思考题:如果给10个数据排序
需要遍冒泡非递减排序,假定,我
们把这10个数存储在数组a(1)-a(10)中,第一遍
是对哪几个数组元素进行排序?第二遍呢?第三
遍?……最后一遍呢?
第一遍是a(1)-a(10),第二遍是 a(2)-a(10),
第三遍是a (3)-a(10)……第九遍是a(9)-a(10)。

也就是说,我们要对10个数据进行冒泡非递减排序,可以用规模为10的数组来存储数据,需进行9遍的冒泡排序。

9遍是同样的工作,我可以用哪种算法结构来实现?循环结构。

可以用一个几遍的循环结构?9遍。

我们设循环变
量为i,那么从循环变量的初值开始,i=1,循环变量的
终值是i<=9,下面必然有一个i的自变语句i=i+1,返回
线,当循环次数超过9遍后退出循环,这就是一个9次
循环的框架。

I每取到一个值就是进行一遍从底部开始的冒泡非
递减排序,在每一遍的冒泡排序中,最核心的部分是相邻两个元素的比较,从底部起任意两相邻的元素都要比较,我们可以设一个通用表达式a(j-1)、a(j)之间的比较,所以放在流程图中应该是比较他们的大小。

如果,a(j-1)>a(j)就需要交换,否则,不需要交换,那么就应该是一个分支结构,a(j-1)>a(j)?如果大于就互相交换,否则不做任何处理。

这里实现一次的两两比较。

在每一遍的冒泡排序中这样的比较要进行很多次,比如a(9)、a(10)之间……等等很多次,所以这样的分支结构要加循环结构来实现,多次的两两比较我们用红色来标识,把这个分支结构套在另外一个循环结构中,让她能够实现多次两两比较,(画出)同样,她也有初值、终值和步长的自变。

红色的循环结构就是为了使里面的两两比
较能多次执行。

所以红色所包括循环结构实现的是每一遍的排序,这样的排序要进行9遍,所以又套了一个9遍的循环结构。

这样一个9遍的冒泡排序的框架就出来了。

这是一个两重循环。

下面,请同学们在《学习任务单》上完成整个流程图。

展示学生的成果(希沃)
展示学生的成果,
研究一下内循环的循环变量,看他是怎样
变化的。

内循环是随j的取值变化而循环,所以我
们研究一下j的初值、终值及步长变化。

从三遍的列举我们可以发现,j的整个的
变化规律是什么呢?初值每一遍都是从10开始,而他的终值是什么变化规律呢?2,3,4,
好像是没有什么规律,但是我们把他和i的进
行比较,i为1时,j的终值是2,i为2时,j的终值是3,i为3时,j的终值为4,所以我
们知道j的终值和i有关,也就是j的终值是
i+1,他的步长永远都是 -1,递减。

……
由此我们可以在流程图上进行完善,j的初值是10,终值是j>i+1,步长为j=j-1 。

至此我们完的冒泡非递减排序的流程图就完成了。

请同学们完成流程图。

然后,两两讨论完成思考一、思考二的内容。

展示学生成果。

赞美的掌声送给这位同学。

本节课我们学习了哪些内容?
总结:
本节课我们学习了
数组及数组的使用。

掌握了冒泡排序算法的思想,会使用冒泡法进行排序。

会使用流程图描述冒泡排序算法。

反思:在准备课的过程中,我意识到两个问题,这十几年的不进步取,我终归要为此付出代价;二我所选课的难度太高,一度我都想放弃,学生的知识储备不足,我为自己挖了个大坑,建议如果再有出课的老师,尽可能选择对学生必修模块的内容,这样相对来说,准备课的难度只放在备课本身上,会好很多。

相关文档
最新文档