3排序问题教学重点:有序列插入排序方法和折半插入排序方法的原理与过程
教学难点:用算法语句描述排序方法
教学目标:1
理解有序列插入排序方法和折半插入排序,并会设计算法2
通过实例,发展用有序列插入排序方法和折半插入排序解决问题的能力
教学过程:为了便于查询,常常需要根据要求将被查寻的对象按照一定的顺序排列,通常称为排序
例如:新来的同学小黄身高175cm,在班上是中等身高,因为做操的需要,体育老师要将他插到队中,你认为老师应该怎样做
象这样在已经按一定顺序排好的系列(有序列)中插入一个数据,我们就叫它有序列插入排序
有序列直接插入排序法有序列直接插入排序:用有序列直接插入排序算法完成无序列排序问题,其基本思想非常简单,即反复使用有序列直接插入排序算法,使有序列的长度不断增加,一直到完成整个无序列的有序排列为止.一般地,对于一个有序列:a1≤a2≤a3≤…≤an,欲将新数据A插入到有序列中,形成新的有序列,其做法是:将数据A与原有序列中的数据从右到左依次进行比较,直到发现某一数据ai,使得ai≤A,把A插入到ai的右边;如果数据A小于原有序列中的所有数据,则将A插入到原序列的最左边.上面的排序算法通常称为有序列直接插入排序的算法.我们在一个已经排好顺序的一系列数中插入一个数据,成为一个新的系列,且仍按原来的规则排序
例如:要将8插入到{1,3,5,7,9,11,13}中,我们怎样考虑
首先确定8在原系列中的位置,使8小于或等于原系列中右边的数据,大于或等于左边的数据,将这个位置空出来,将数据8插进去例13578911131题分析:例1已知有一组系列{13,27,38,39,43,47,48,51,57,66,74},现要将数据52插入到数据中
数据序列号1234567891011原序列1327383943474851576674(1)请设计算法,确定52在新数据