《数据结构[Python语言描述]》教案第17课排序(9.1-9.3).docx
《《数据结构[Python语言描述]》教案第17课排序(9.1-9.3).docx》由会员分享,可在线阅读,更多相关《《数据结构[Python语言描述]》教案第17课排序(9.1-9.3).docx(7页珍藏版)》请在优知文库上搜索。
1、课题第17课排序(9.1-93)课时2课时(90min)教学目标知识目标:(1)了解排序的相关概念(2)掌握插入排序的两种典型算法直接插入排序和希尔排序的过程及算法实现(3)掌握交换排序的两种典型算法冒泡排序和快速排序的过程及算法实现技能目标:能利用插入排序、交换排序算法解决实际应用中的排序问题素质目标:加强实践练习,注重学思结合、知行统一教学重难点教学重点:排序概述、插入排序教学睚点:插入排序教学方法问答法、讨论法、i并授法、实践法教学用具电脑、投影仪、多媒体课件、教材教学过程主要教学内容及步骤考勤【教师】使用APP进行签到【学生】班干部报请假人员及原因问题导入【教师】提出以下问题:什么是排
2、序?排序的目的是什么?【学生】思考、举手回答传授新知【教师】通过学生的回答引入要讲的知识,介绍排序概述、插入排序、交换排序9.1 排序概述排序是指将一个数据元素的任意序列按关键字的递增或递减次序重新排列起来,使其成为一个按关键字有序排列的序列.(1)排序的分类.排序可分为两类,分别是内部排序和外部排序.内部排序是指W待排序雌元素完全放置在计算机内存中进行排序;外部排序是指因待排序数据元素数量较大,排序过程中不仅需要占用内存,还需要借助外存来进行排序。(2)排序的稳定性。假设待排序数据元素序列中存在两个及以上关键字相同的数据元素,若经过排序后,这些数据元素的相对次序保持不变,则称所用的排序算法是
3、稳定的;反之,若经过排序后,这些数据元素的相对次序发生变化,则称所用的排序算法是不稳定的。(3)排序算法的性能评价。通常情况下,使用时间复杂度、空间复杂度和稳定性来综合衡量一个排序算法性能的高低.9.2 插入排序【教师】随机邀请学生回答以下问题什么是插入排序?*【学生】聆听、思考、回答插入排序是指将待排序数据元素按其关键字大小插入有序序列的合适位置,直到全部数据元素均完成插入.9.2.1 直接插入排序直接插入排序是一种最简单的排序算法,其基本思想是将待排序数据元素按其关键字大小插入已排好序的有序表中,从而得到一个新的有序表。1.排序过程对于一个具有个数据元素的序列丽,无必,当,直接插入排序的具
4、体过程如下。(1)初始状态下,将数据元素丽看作有序表,将(仇,2.,为看作无序序列。(2A各无序序列中第一个佛E序数据元素的关键字攵”依次与有序表中数据元素的关键字进行比较,将所有关键字大于的数据元素依次向后移动一个位置,直到某个数据元素的关键字小于或等于Z”时,此时将关键字为的数据元素插入关键字小于或等于4”的数据元素后面,即可完成第一个数据元素的插入。此时,有序表扩充一个数据元素,无序序列减少一个数据元素。(3)重复步骤(2),经过T趟排序后,最终得到一个按关键字递增有序的数据元素序列。【算法描述】详见教材【教师】讲解实例9-1(详见教材),并介绍直接插入排序的过程2.算法分析(1)时间复
5、杂度.直接插入排序花费的时间主要由关键字的比较和数据元素的移动这两部分构成,因此,数据元素最初的位置直接影响算法花费的时间。(2)空间复杂度。由于直接插入排序仅使用了一个辅助变量,与问题规模无关,故其空间复杂度为O。(3)稳定性。使用直接插入排序后,后面的数据元素不会移到具有相同关键字的数据元素前面。因此,直接插入排序是一种稳定的排序算法。(详见教材)9.2.2希尔排序希尔排序是在直接插入排序的基础上进行改进的排序算法,其基本思想是首先将待排序数据元素序列划分为若干个子序列,其中每个子序列由相隔某个“增量的数据元素组成;然后对这些子序列分别进行直接插入排序;接着通过不断缩小增量”对子序列进行调
6、整,直到当整个序列基本有序时,再对全部数据元素进行一次直接插入排序。1 .排序过程对于一个具有个数据元素的序列加,出at,.lan.l,希尔排序的具体过程如下。(1)按选定增量d1(dn)将所有距离为cK的数据元素划分为一个子序列,对各子序列进行直接插入排序。(2)按选定增量d2d2ch)对所有健元素重新划分子序列,并对各子序列进行直接插入排序。(3)以此类推,直到增量cfl-=l,即将所有数据元素放在一个子序列中进行直接插入排序,最终得到一个按关键字递增有序的数据元素序列。【算法描述】详见教材【教师】讲解实例9-2(详见教材),并介绍希尔排序的过程2 .算法分析(1)时间复杂度。希尔排序的时
7、间复杂度由所选取的增量序列决定。希尔排序的时间复杂度难以分析,一般认为其平均时间复杂度为0(2)。(2)空间复杂度。由于希尔排序仅使用了一个辅助变量,与问题规模无关,故其空间复杂度为0(1).(3)稳定性。希尔排序在移动数据元素时采取跳跃式移动,使用希尔排序后,后面的数据元素可能会移到具有相同关键字的数据元素前面。因此,希尔排序是一种不稳定的排序算法。(详见教材)【拓展阅读】当使用算法解决实际应用问题时,如果同一个问题采用不同的算法实现,那么解决问题的效率也是不同的。因此,人们不断自主探究算法的优化与改进,以使问题获得高效解决。在这样的过程中,努力创新、精益求精、追求卓越的精神值得每个人学习.
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据结构【Python语言描述 数据结构 Python 语言 描述 教案 17 排序 9.1 9.3
