课件15张PPT。1.3.3《算法案例-排序的算法》(第三课时)
湖南省耒阳市振兴学校高中数学老师欧阳文丰制作教学目标 (a)知识与技能
1. 掌握数据排序的原理能使用直接排序法与冒泡排序法给一组数据排序,进而能设计冒泡排序法的程序框图及程序,理解数学算法与计算机算法的区别,理解计算机对数学的辅助作用。
(b)过程与方法
能根据排序法中的直接插入排序法与冒泡排序法的步骤,了解数学计算转换为计算机计算的途径,从而探究计算机算法与数学算法的区别,体会计算机对数学学习的辅助作用。
(c)情态与价值
通过对排序法的学习,领会数学计算与计算机计算的区别,充分认识信息技术对数学的促进。(2)教学重难点
重点:两种排序法的排序步骤及计算机程序设计
难点:排序法的计算机程序设计
(3)学法与教学用具
学法:模仿排序法中数字排序的步骤,理解计算机计算的一般步骤,领会数学计算在计算机上实施的要求。
教学用具:电脑,计算器,图形计算器排序及基本概念1.什么是排序? 排序是数据处理中经常使用的一种重要运算,他是一种很基本的算法,很多题目的关键问题就决定于排序。特别是在今天的信息学奥赛中,在空间允许的前提下,提高时间效率,是程序能否通过大数据量的测试的关键,而能否熟练的对数据排序,至关重要。
一般情况下,排序问题的输入是n个数a1,a2,…,an,在实际程序设计中,待排序的对象往往不是单一的数,而是一个记录,其中有一个关键字域key,他才是排序的根据。设有n个记录{R1,R2,……,Rn}组成的序列,n个记录对应的关键字集合为{K1,K2,……,Kn}。所谓排序就是将这n个记录按关键字大小递增或递减重新排列。
对于排序算法来说,无论待排序的对象是单个的数值,还是记录,他们的排序方法都是一样的。2.稳定性 当待排序的数值或记录的关键字均不相同时,排序结果是惟一的,否则排序结果不唯一。如果序列中关键字相同的多个记录经过某种排序方法进行排序之后,仍能保持它们在排序之前的相对次序,则称这种排序方法是稳定的;否则,称这种排序方法是不稳定的。
例如:有一组记录的关键字为(23,85,72,58,23,40),其中关键字同为23的记录有两个(为了区分,后一个23带有下划线),
如果一种排序算法使排序后的结果是(23,23,40,58,72,85),则此方法是稳定的;
如果另一种排序算法使排序后的结果是(23,23,40,58,72,85),则此方法是不稳定的。
3.排序的方式 由于数据大小不同使排序过程中涉及的存储器不同,可将排序分成内部排序和外部排序两类。整个排序过程都在内存进行的排序,称为内部排序;反之,若排序过程中要进行数据的内、外存交换,则称之为外部排序。 内部排序适用于记录个数不是很多的小文件,而外部排序则适用于记录个数太多,不能一次性放人内存的大文件。 内部排序是排序的基础,本讲主要介绍各种内部排序的方法。
冒泡排序
插入排序 简单的排序算法,若数据量较大,则效率很低
选择排序
快速排序 冒泡排序之改进
堆排序
归并排序第一步:将序列中的第一个元素作为排序后的有序序列中的第一个元素.直接插入排序第二步:将序列中的下一个元素与有序序列中的最后一个元素进行比较,如果该元素小于最后一个元素,则在该序列中查找该元素应该插入的位置,然后将其插入到正确的位置;如果大于该有序序列中的最后一个元素,则直接将其作为有序序列的最后一个元素.第三步:反复执行第二步,直到将列中剩余元素全部插入到有序子序列中为止.排序的算法将下面数字按由小到大的顺序排列8,3,2,5,9,6方法1:S1:比较第2个数与第1个数的大小,并排序得3,8S2:将第3个数与S1中的数比较,插入适当的位置,得到
2,3,8S3:将第4个数与S2中的数比较,并插入适当的位置,如此继续下去,直到把最后一个数插入到上一步已排好的数列的合适位置为止,得到:2 ,3, 5, 82 ,3, 5, 8 ,92 ,3, 5, 6 , 8 , 9S4:S5:直接插入排序排序的算法将下面数字按由小到大的顺序排列8,3,2,5,9,6方法1:过程演示开始排第1次排第2次排第3次排第4次排第5次直接插入排序排序的算法将下面数字按由小到大的顺序排列8,3,2,5,9,6方法2:S1:用第1个数与第2个数比较,若前者小则两数不变,否则,交换这两个数的位置。S2:按这样的原则,比较第2个数和第3个数,前者小则两数不变,否则,交换这两个数的位置……直到比完最后两个数。(称为“一趟”)S3:如果前一趟的比较中交换的次数为0,说明排序已完成,否则回到S2。根据题意,一趟后的结果是什么?为什么说前一趟的比较中交换为0次时,排序完成?3,2,5, 8, 6 , 9排序的算法将下面数字按由小到大的顺序排列8,3,2,5,9,6请将每一趟的结果写出来第1趟该趟中交换的次数为________次4排序的算法将下面数字按由小到大的顺序排列8,3,2,5,9,6请将每一趟的结果写出来第2趟该趟中交换的次数为________次2排序的算法将下面数字按由小到大的顺序排列8,3,2,5,9,6请将每一趟的结果写出来第3趟该趟中交换的次数为________次,0所以排序的结果为:2,3,5,6,8,9例3、用冒泡法对数据7,5,3,9,1从小到大进行排序.练习:1、根据前面的介绍阅读课本P32的例3,并完成图1.3-6的填空课后作业课本P38的习题1.3第2、3题