JavaScript程序设计基础教程(慕课版)(第2版) 教案 单元9、10 算法、JavaScript特效制作.docx
PAGE1
PAGE
单元9算法
课程名称
JavaScript程序设计
项目名称
算法
任务名称
算法
课时
4
项目性质
□演示性□验证性□设计性√综合性
授课班级
授课日期
授课地点
教学目标
能力目标:
具备使用常见排序算法解决问题的能力
知识目标:
掌握常见的十种算法
素质目标:
1.培养学生信息搜集能力
2.培养学生团结合作、互帮互助的能力
教学内容
1.任务描述
2.任务展示与实现
3.教师讲解本任务涉及的知识点
4.任务小结
教学重点
常见排序算法的应用
教学难点
常见排序算法的应用
教学准备
1.装有Chrome浏览器或者Firefox浏览器,并且安装有WAMP的电脑
2.教学课件PPT
3.教材:《JavaScript程序设计基础教程(微课版)》刘刚人民邮电出版社
作业设计
用JavaScript算法实现斐波那契数列
教学过程
教学
环节
教学内容与过程
(教学内容、教学方法、组织形式、教学手段)
课前组织
做好课前“5分钟”教学管理(多媒体、实训室),做好上课前的各项准备工作(打开电脑、打开课件、打开软件、打开U盘中的素材位置、打开授课计划、教案等),吸引学生注意力。
课程
说明
【课前说明】
分别介绍使用常见排序算法的方法,掌握各算法的具体应用。
【目的】
使学生从了解本单元的学习目标、学习重点、考评方式等方面明确学习本单元知识的要求和目标。掌握使用各算法解决问题的方法。
课程
内容
描述
一、冒泡排序
冒泡排序算法是最慢的排序算法之一,也是一种最简单最容易实现的算法。它重复地走访过要排序的数列,一次比较两个元素,如果它们的顺序错误就把它们交换过来。走访数列的工作是重复地进行直到没有再需要交换的数值为止,也就是说该数列已经排序完成。
二、选择排序
选择排序是表现最稳定的排序算法之一,也是一种简单直观的排序算法。选择排序从数组的开头开始,将第1个元素和其他元素进行比较。检查完所有元素后,最小的元素会被放到数组的第1个位置,然后算法会从第2个位置继续。这个过程一直进行,当进行到数组的倒数第2个位置时,所有的数据便完成了排序。
三、插入排序
插入排序的算法描述是一种简单直观的排序算法,它的工作原理是通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。插入排序在实现上,从后向前扫描过程中,需要反复把已排序元素逐步向后挪位,为最新元素提供插入空间。
四、希尔排序
希尔排序的核心理念与插入排序不同,它会首先比较距离较远的元素,而非相邻的元素。和简单的比较相邻元素相比,使用这种方案可以使离正确位置很远的元素更快地回到合适的位置。当开始用这个算法遍历数据集时,所有元素之间的距离会不断减小,直到处理到数据集的末尾,这时算法比较的就是相邻元素了。希尔排序的工作原理是,通过定义一个间隔序列来表示在排序过程中进行比较的元素之间有多远的间隔。既可以提前设定好间隔序列,也可以动态地定义间隔序列。
五、归并排序
归并排序是建立在归并操作上的一种有效的排序算法,也是一种稳定的排序方法。归并排序的实现原理是:把一系列排好序的子序列合并成一个大的完整有序序列;即先使每个子序列有序,再使子序列段间有序。最后将两个有序表合并成一个有序表,也称为二路归并。归并排序存在两种方式:自顶向下的归并和自底向上的归并。
六、快速排序
快速排序是处理大数据集最快的排序算法之一。它是一种分而治之的算法。快速排序的基本思想是:通过一次排序将待排记录分隔成独立的两部分,其中一部分记录的关键字均比另一部分的关键字小,则可分别对这两部分记录继续进行排序,以达到整个序列有序。
这种算法首先要在列表中选择一个元素作为基准值。数据排序围绕基准值进行,将列表中小于基准值的元素移到数组的底部,将大于基准值的元素移到数组的顶部。
七、堆排序
堆排序是一种利用堆的概念来排序的选择排序。堆排序(Heapsort)是指利用堆这种数据结构所设计的一种排序算法。堆是一个近似完全二叉树的结构,并同时满足堆积的性质:即子节点的键值或索引总是小于(或者大于)它的父节点。
八、计数排序
计数排序的核心在于将输入的数据值转化为键存储在额外开辟的数组空间中。作为一种线性时间复杂度的排序,计数排序要求输入的数据必须是有确定范围的整数。
计数排序(Countingsort)是一种稳定的排序算法。它使用一个额外的数组C,其中第i个元素是待排序数组A中值等于i的元素的个数。然后根据数组C来将A中的元素排到正确的位置。它只能对整数进行排序。
九、桶排序
桶排序是一种基于计数的排序算法,工作的原理是将数据分到有限数量的桶子里,然后每个桶再分别排序(有可能再使用别的排序算法或是以递回方式继续使用桶排序进行排序)。桶排序不