新课引入:,体验纸牌排序:,将给定顺序的几张纸牌从小到大排列,并说一说你进行排列的思路。,新课引入:体验纸牌排序:,冒 泡 法 排 序 算 法,冒 泡 法 排 序 算 法,知识与技能:,了解排序及冒泡法排序的概念;掌握冒泡排序算,法思想并学会用冒泡法对数据排序;初步掌握冒泡法,排序的程序实现。,过程与方法:,通过对冒泡排序过程和程序实现过程的分析,初步,掌握用冒泡排序法来解决简单的排序问题。,情感目标:,通过对冒泡排序算法过程的分析,培养学生设计程序,解决实际问题的能力,激发学生对程序设计的兴趣,形,成积极主动学习信息技术的态度。,【,学习目标,】,知识与技能:【学习目标】,2,、冒泡法排序?,1,、什么是排序?,一、初识冒泡法排序(自主学习),阅读课本,P57,,完成以下问题,将一个无序序列排列成一个有序序列的,过程。,也叫起泡法排序,将,相邻元素,进行,比较和,交换,,逐步将一个,无序序列,排列为一个,有序序,列,。,将元素按从,小,到,大,的顺序排列称为,升序,排,列,,从,大,到,小,称为,降序,排列。,2、冒泡法排序?1、什么是排序?一、初识冒泡法排序(自主学习,二、冒泡排序法的思想,从,最下面,(或最后面)一个元素(数据)开始,,依次,比较相邻的,两个元素,,,较小的元素,像气泡一样,上浮,,,较大的元素下沉,,第一轮找出最小值,第二轮找出次小值,依次类推,如何实现相邻元素的比较和交换呢?,二、冒泡排序法的思想 从最下面(或最,例,1,:设数组变量,a(j),为牌的值(,j=1,、,2,、,3,、,4,、,5),利用冒泡法排序,(,从小到大,),,进行每一轮排序。,体验冒泡法排序的过程:,1,2,3,4,5,例1:设数组变量a(j)为牌的值(j=1、2、3、4、5),数,组,变,量,A(j),数,第一轮冒泡过程,a(5),a(4),,,a(4),a(3),a(3),a(2),a(2),a(4),a(4),a(4),,,不交换,a(4),a(3),交换,a(3),a(4),不交换a(4)a(3),第三轮冒泡过程,a(5),a(3),不交换,第三小值,第一次,第二次,第三轮冒泡过程a(5)a(3),不,第四轮冒泡过程,a(5),a(4),不交换,第四小值,第四轮冒泡过程a(5)a(4),不交换第四小值,试一试:,用冒泡排序法将数组元素,9,、,5,、,3,、,8,、,1,排序(从小到大),第一轮各次排序情况怎样,?,8,1,5,9,1,8,3,5,9,3,8,3,9,5,3,8,1,3,5,1,9,5,9,1,8,初始,最小值,第一次,第二次,第三次,第四次,1,设数组变量,a(j),为各数的值(,i=1,、,2,、,3,、,4,、,5),试一试:8159183593839538135195918初,8,5,1,1,初始,3,1,1,1,1,5,8,8,3,3,5,9,5,5,3,9,3,2,、每一轮排序后结果如何?,第一轮,第二轮,第三轮,第四轮,9,9,8,3,8,8,9,8511初始311115883359553932、每一轮排序,小结:,如果对有,5,个元素的数组进行排序,那么,1,、要进行,_,轮冒泡,2,、第,1,轮冒泡的时候它进行比较的范围是从,_,开始比较到,_,结束,,_,次比较;,第,2,轮冒泡的时候呢?,是从,_,到,_,,,_,次比较;,第,3,轮冒泡的时候呢?,是从,_,到,_,,,_,次比较;,4,a(5),与,a(4),a(2),与,a(1),a(5),与,a(4),a(3),与,a(2),a(5),与,a(4),a(4),与,a(3),第,4,轮冒泡的时候呢?,是从,_,到,_ ,_,次比较;,a(5),与,a(4),a(5),与,a(4),4,3,2,1,小结:1、要进行_轮冒泡2、第1轮冒泡的时候它进行,如果要对数组,a(1),、,a(2),、,a(3),、,a(n-2),、,a(n-1),、,a(n),中,n,个元素进行排序,那么,思考:对于上面的方法和步骤,我们,怎么,编程实现呢,?,第一轮冒泡要经过,_,次比较,第二轮冒泡要经过,_,次比较,.,第,n-1,轮冒泡要经过,_,次比较,1,、要进行,_,轮冒泡,n-1,n-1,n-2,1,如果要对数组a(1)、a(2)、a(3)、,Y,N,开始,i,0,j=n-1,A(j)n-2,输出排序结果,结束,Y,Y,N,三、冒泡排序法的程序实现,(利用,VB,),识读,P58,图,3-13,(,n,个元素冒泡排序法流程图),小组合作完成问题。,YN开始i0,j=n-1A(j)A(j-1)交换A(j,1.,将图中,n,换成数字,5,,按流程执行每一步,直到结束,讲述全过程。,2.,在流程图中,,实现数字大小,的,比较,和交换时用到什么结构?在,VB,中,用什么语句?,3.,在流程图中,哪里用到循环结构,?,在,VB,中,用,什么,语句,实现?两个循环之间什么关系,哪个有外面?,小组,合作,:,识读,P58,图,3-13,流程图,小组讨论后回答以下问题,组长代表发言。,If,语句,For,语句,选择结构,嵌套关系,大框在外,两个返回执行的部分,1.将图中n换成数字5,按流程执行每一步,直到结束,讲述全过,For to,If then,end if,next,程序实现(对数组,a,(4),中,5,个元素冒泡排序),j=,?,a(j)a(j-1),交换,a(j),与,a(j-1),的值,j,比较两个数,如果后面的数比前面的,小,,则,交换,For to,i=,?,next,i,i=0 3,j=4,?,step-1,i=0,i=1,i=3,j=4 to 1,j=4 to 3,j=4 to 4,i=2,j=4 to 2,4,次比较,3,次比较,2,次比较,1,次比较,j=4 i+1 step-1,思考:,1,、若数组,a(4),变为,a(1to5),,那么外循环,for i=to ;,内循环,for j=to,2,、若数组包括,n,个元素,分别是,a(1),、,a(2),a(n),,那么外循环,for i=to ;,内循环,for j=to,3,、若程序中,“”,程序运行结果会有什么变化?,1 4,5 i+1,1 n-1,n i+1,降序排序,For to程序实现(对数组a(4)中5个元素冒泡,小结:,通过对上面,冒泡法排序的分析,,我们可以得出以下规律:,1,、无论数组元素有多少,起点再怎么变化,程序中只需变化的是外循环变量,i,的值?内循环变量,j,的值?,2,、解决升序问题,a(j),?,a(j-1);,解决降序问题,a(j),?,a(j-1),。,初值和终值,初值,小结:1、无论数组元素有多少,起点再怎么变化,程序中只需变化,四、课堂小结:,要进行,轮冒泡,第一轮冒泡要经过,次比较,第二轮冒泡要经过,次比较,第,n-1,轮冒泡要经过,次比较,冒泡法排序:,从 数据开始,依次比较 数据,把 的数据逐次向上推移,最后一个,较小,相邻的两个,n-1,n-1,n-2,1,如果对有,n,个元素数组进行排序,则:,四、课堂小结:要进行 轮冒泡冒泡法排序:,课堂练习,1,、对,“,648251,”,中的,6,个数码进行两轮冒泡排序后的结果是(),A.684521 B.462518 C.126485 D.864521,2,、有一组原始数据:,21,、,26,、,18,、,63,、,84,、,77,、,66,、,12,、,33,、,17,。利用冒泡排序算法进行从小到大排序,需要进行()次比较,才可以完成第一轮数据的排序。,A.5 B.6 C.8 D.9,C,D,课堂练习1、对“648251”中的6个数码进行两轮冒泡排序后,3,、下表中的原始数据是一组学生的军训打靶成绩,若采用冒泡排序算法对其进行排序,则第,3,遍的排序结果是,。,93,85,88,95,98,9385889598,4,、实现某排序算法的部分,VB,程序如下:,For i=1 To 4,For j=5 To i+1 Step-1,If a(j)a(j-1)Then,t=a(j):a(j)=a(j-1):a(j-1)=t,Next j,Next I,在经过某一遍排序“加工”后,数组元素,a(1),到,a(5),的数据依次为“,26,、,78,、,52,、,60,、,33”,。则下一遍排序“加工”后数组元素,a(1),到,a(5),的数据应该是(),A.26,、,33,、,78,、,52,、,60 B.26,、,33,、,52,、,60,、,78,C.26,、,33,、,60,、,52,、,78 D.26,、,33,、,52,、,78,、,60,A,4、实现某排序算法的部分VB程序如下:A,5,、有,n,个元素的数组,从小到大排序,将程序填写完整。,For i=1 to,n-1,For j=,(),to,(),step,(),if a(,)a(,)then,t=a(j),a(j)=a(j-1),a(j-1)=t,end if,Next j,Next i,n,i+1,-1,j,j-1,5、有n个元素的数组,从小到大排序,将程序填写完整。For,收集有关冒泡法排序的,VB,程序,通过上机体验,进一步体会冒泡法排序的思想及实现过程;也可将上面,5,个元素排序程序段完善完整,通过上机运行,进一步体会冒泡法排序的思想及实现过程。,课下实践,:,课下实践:,