排序区间变化教学案例(技术组陈红)

上传人:hs****ma 文档编号:512595992 上传时间:2023-08-13 格式:DOCX 页数:4 大小:34.46KB
返回 下载 相关 举报
排序区间变化教学案例(技术组陈红)_第1页
第1页 / 共4页
排序区间变化教学案例(技术组陈红)_第2页
第2页 / 共4页
排序区间变化教学案例(技术组陈红)_第3页
第3页 / 共4页
排序区间变化教学案例(技术组陈红)_第4页
第4页 / 共4页
亲,该文档总共4页,全部预览完了,如果喜欢就下载吧!
资源描述

《排序区间变化教学案例(技术组陈红)》由会员分享,可在线阅读,更多相关《排序区间变化教学案例(技术组陈红)(4页珍藏版)》请在金锄头文库上搜索。

1、算法选考专题 排序区间变化 教学设计 技术组 陈红【引言】排序和查找是高中阶段算法的核心,也是程序教学中的重点和难点。目前高二选考班级的学生已经学习了双重循环以及冒泡排序、选择排序,本课程在于引导学生理解排序本质,通过探讨排序过程中区间变化,从而深刻理解排序各变量含义,对排序的变异也能做到有的放矢。【教学目标】(1) 知识与技能: a、理解排序算法的核心思想,通过示例观察区间变化特征;b、通过具体的实例,掌握区间变化规律和代码特征;c、培养学生分析问题解决问题的能力(2) 过程与手段: a、通过具体示例的引入,来探讨区间变化b、通过观察分析过程特征,理解双重循环中各变量的作用和关系(3) 情感

2、态度与价值观: 深刻理解排序算法的核心,体现学科素养的要素。【教学过程】环节一、复习引入【设计】1、引入冒泡排序和选择排序的基本代码,请学生分析排序代码的特征(排序的方向和顺序)。For i = 1 To n - 1For j = n To i + 1 Step -1If a(j) a(j-1) Then t = a(j):a(j) = a(j-1):a(j-1) = tEnd IfNext jNext i For i = 1 To n-1For j = 1 To n-i If a(j) a(j + 1) Thent=a(j):a(j)=a(j+1):a(j+1)=tEnd IfNext jN

3、ext i For i1 To n-1For ji 1 To nIf a(j) a(i) Then t = a(j): a(j) = a(i): a(i) = tEnd IfNext jNext i For i = n-1 To 1 step -1For j = 1 To i If a(j) a(j) Then k = jNext jIf i k Then t = a(i): a(i) = a(k): a(k) = tEnd IfNext i For i = 1 To n - 1k = iFor j = i + 1 To nIf a(k) a(j) Then k = jNext jIf i k

4、 Thent = a(i): a(i) = a(k): a(k) = tEnd IfNext i 2、请学生思考(1)i和j分别代表什么(2)在处代码处能否将划线处代码改为“For j = i+1 To n”?【意图】回顾冒泡和排序的基础知识,为后续知识点的引入做好铺垫【现场】学生对于问题1基本上都能掌握,但对于问题2回答都模糊不清。环节二、剖析排序区间变化【设计】1、 出示冒泡排序的算法描述,请学生用自己的语言概要描述算法特征:冒泡排序是在一列数据中把较小(大)的数据逐次向上推移的一种排序技术。该算法的基本思想是把待排序的个元素的数组看成是垂直堆放的一列数据,从最下面的一个元素起,自下而上地

5、比较相邻的两个元素中的数据,将较小(大)的数据换到上面的一个元素中。重复这一过程,直到处理完最后两个元素中的数据,称为一趟加工(一遍排序)。当第一趟加工完成时,最小(大)的数据已经上升到第一个元素的位置。然后对余下的n-1个元素重复上述处理过程,直至最后余下两个数据的比较和交换。由于每一趟加工都是将本趟最小(大)的数元素像气泡一样浮至本趟的顶端位置,所以称作冒泡排序。(自下而上、浮至本趟的顶端位置、最后余下两个数的比较) 1 2 3 4 52、 请学生完成d(1) d(5)的排序过程核心要义(1) 未排序的参与排序(2) 每一遍排序,都是把大数上浮到本遍排序的顶端位置,所以排序区间的变化是底固

6、定,顶缩小(3) 比较的数自下而上,体现在下标上就是大到小(4) j的作用指向每一遍排序的排序范围3、 请学生思考在处代码处能否将划线处代码改为“For j = i+1 To n”?4、 知识迁移:请学生完成冒泡下沉代码的区间变化,注意j的变化For i = 1 To n-1For j = 1 To n-i If a(j) a(i+1)Then t=a(i):a(i)=a(i +1):a(i+1)=t k=iEnd If Next i R=k For If a(i)a(j+1) Then t=a(j):a(j)=a(j+1):a(j+1)=t End If If a(m)a(k) Then k=m Next j If ki Then t=a(k):a(k)=a(i):a(i)=t End IfNext iFor i=1 To n List2. AddItem Str(a(i)Next i End Sub2、核心要义(1)排序范围两头缩小,顶端和低端都在变(2)排序遍数缩小为原来的一半【意图】通过双向和单向的模拟比较,总结双向规律【现场】学生从示例出发,体会并理解排序的核心要义【课后反思】本案例旨在从排序的本质来理解排序代码,理解双重循环的执行过程。只有掌握排序核心要义,才能对变化的排序代码游刃有余。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 幼儿/小学教育 > 小学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号