欢迎来到天天文库
浏览记录
ID:52300044
大小:43.00 KB
页数:3页
时间:2020-03-26
《数据结构教学全套课件Java版杨淑萍教学资料教案 排序.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、数据结构B教案2008-2009学年第1学期教学单元:排序授课班级:07软2、07软3教学内容提要:(学时数:4)1.排序基本概念2.冒泡排序3.选择排序4.插入排序5.快速排序6.实践项目:实现冒泡和快速排序。教学目的:1理解排序的基本思想2掌握不同排序的程序实现3了解不同排序的优缺点4会在实际编程中根据具体情况选择最优的排序方法教学重点、难点:1冒泡排序和快速排序2不同排序算法的使用环境教学方法:通过项目,采用讲授、启发引导、学生自己动手做相结合。教学过程设计:备注:1演示项目程序2讲解排序
2、的基本概念3冒泡排序、选择排序、插入排序、快速排序算法讲解与实现,基于数组的排序(基于一维数组)1)讲解排序思想2)构造伪代码3)编写程序代码4)调试运行程序要求学生掌握各种排序的思想和排序过程4项目拓展:设计一个项目可以对任意个数进行排序,计算并比较各种排序的时间。课堂提问:小结:1)理解排序的基本思想和几种常用排序2)在编程实际中能够选用正确的排序算法作业题:实现摇动排序:一遍向上排序(由0..n),一遍向下排序(由n..0),交替进行.数据结构B教案2008-2009学年第1学期冒泡排序算
3、法设计1定义变量i做为趟数循环变量,j作为数组下标,n=a.length,temp是临时单元;2i从1到n-1进行循环{j从0(数组第1个元素)开始到n-i(第n-i-1个元素)进行循环比较a[j]和a[j+1],若前者大于后者,则交换2个数组元素的值。}选择排序算法设计1定义变量i做为趟数循环变量,j作为数组下标,k记录比较过程中数组的下标n=a.length,temp是临时单元;2i从0到n-1进行(趟数)循环{1)k=i2)对j进行循环(j从i+1开始到n-1)如果a[k]>a[j],则k
4、=j。3)如果k<>i,则交换a[i]和a[k]。}插入排序算法步骤:insertSort(inta[]){1定义变量i,j,temp,n=a.length,t;2i从1到n-1进行循环(将a[i]插入到有序的a[0],a[1],…a[i-1]中,使a[0]…a[i]有序){1)temp=a[i](将a[i]保存起来)2)j从i开始循环,循环结束条件为(j=0&&temp5、a[k+1]=a[k];k--;4)将t放在a[j]的位置,即a[j]=t.}快速排序算法步骤intPartition(ObjectR[],intl,inth){用变量i,j记录待排序数组首尾位置以数组的第一个元素作枢轴x=R[0];∥用变量x存放枢轴记录的关键字重复以下操作,直到i>j://从表的两端交替地向中间扫描把j从右往左移动,直到找到第一个比x小的值将比x小的记录移到低端把i从右往左移动,直到找到第一个比x大的值将比x大的记录移到高端枢轴记录到位返回枢轴位置}∥Partition数据结6、构B教案2008-2009学年第1学期voidQuickSort(ObjectR[],ints,intt){∥对记录序列R[s..t]进行快速排序if(s
5、a[k+1]=a[k];k--;4)将t放在a[j]的位置,即a[j]=t.}快速排序算法步骤intPartition(ObjectR[],intl,inth){用变量i,j记录待排序数组首尾位置以数组的第一个元素作枢轴x=R[0];∥用变量x存放枢轴记录的关键字重复以下操作,直到i>j://从表的两端交替地向中间扫描把j从右往左移动,直到找到第一个比x小的值将比x小的记录移到低端把i从右往左移动,直到找到第一个比x大的值将比x大的记录移到高端枢轴记录到位返回枢轴位置}∥Partition数据结
6、构B教案2008-2009学年第1学期voidQuickSort(ObjectR[],ints,intt){∥对记录序列R[s..t]进行快速排序if(s
此文档下载收益归作者所有