浙教版高中信息技术-选修1-23-排序课件.pptx
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《浙教版高中信息技术-选修1-23-排序课件.pptx》由用户(ziliao2023)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 浙教版 高中 信息技术 选修 23 排序 课件
- 资源描述:
-
1、第二单元排序算法及程序实现下表记录了6个数据的排序过程。分析表中数据可知,该排序采用的算法与排序方式分别为()A.冒泡排序,降序B.选择排序,降序C.冒泡排序,升序D.选择排序,升序原始数据655759444569第1遍446557594569第2遍444565575969第3遍444557655969排序是一种算法思想(对已有的一组数,经过一系列的加工处理后输出一组目标数)。什么是排序(什么是排序(sortsort)就是把杂乱无章的数据变为有序的数据的过程。(递增或递减)。生活和工作中对问题的处理过程更多的依赖于数据的有序性。比如说学生的成绩。校园歌手打分评委评委1评委评委2评委评委3评委评
2、委4评委评委5评委评委69.59.09.69.79.69.4评委评委1评委评委2评委评委3评委评委4评委评委5评委评委69.59.09.69.79.69.4d(1)d(2)d(3)d(4)d(5)d(6)9.09.49.59.69.69.7d(1)d(2)d(3)d(4)d(5)d(6)排序d(1)=9.5d(2)=9.0d(3)=9.6d(4)=9.7d(5)=9.6d(6)=9.4排序For i=1 to 6List1.additem d(i)Next i冒泡排序冒泡排序是在一列数据中把较小(大)的数据逐次向上推移的一种排序技术。(1)N个元素垂直堆放一列(2)从最下面的一个元素起,自下而
3、上比较相邻两个元素,将小的元素换到上面(3)重复这一过程,直到处理完最后的两个元素 结果:第一遍加工结束,最小的元素会升到第一个元素的位置 对剩下的n-1个元素重复2-3步骤,这是第二遍加工,第二小的元素会上升到第二个元素的位置但比较的数据会逐个减少,直至只剩下最后的两个元素的比较和交换。基本思想:冒泡排序的过程冒泡排序的过程请观察第一、二遍共比较几次,交换几次,请问第三、四、五遍的结果第一遍加工第二遍加工原始数据123451234A(1)40404040402020202020A(2)30303030204040404025A(3)70707020303030302540A(4)252520
4、70707070253030A(5)20202525252525707070A(6)55555555555555555555冒泡排序的数据比较次数冒泡排序的数据比较次数l对于规模为n的数据进行排序,总共需进行n-1遍加工。l第一遍加工的比较次数为n-1次;l第二遍加工的比较次数为n-2次;ll第n-1遍加工的比较次数为1次。l所以总比较次数:n(n-1)/2次冒泡排序的数据交换次数冒泡排序的数据交换次数当ia(j),就称a(i)和a(j)为一个逆序对。数列中逆序对的对数=数据的交换次数例:数列40 30 70 25 20 55中存在的逆序对有数据的交换次数为9次。(40,30)(40,25)(
5、40,20)(30,25)(30,20)(70,25)(70,20)(70,55)(25,20)l有如下一组数据:27 166 85 36 73 127 159,利用冒泡排序进行从小到大排序,需要交换的次数是 A、5 B、6 C、7 D、8第一遍:27 36 166 85 73 127 159 交换两次第二遍:27 36 73 166 85 127 159 交换两次第三遍:27 36 73 85 166 127 159 交换一次第四遍:27 36 73 85 127 166 159 交换一次第五遍:27 36 73 85 127 159 166 交换一次第六遍:27 36 73 85 127
6、159 166 无交换冒泡排序冒泡排序算法的程序实现算法的程序实现冒泡排序的过程冒泡排序的过程n n表示排序数据的个数;表示排序数据的个数;i i表示加工处理(冒泡)的遍数;表示加工处理(冒泡)的遍数;j j表示当前访问数据的下标(相当于指针);表示当前访问数据的下标(相当于指针);处理过程处理过程(i i)比较对象比较对象(交换)(交换)访问数据范围访问数据范围(j(j)处理成效处理成效第1遍(i=1)d(j)与d(j-1),若逆序则交换N 到 2(i+1)推出最小的数据到1号位置第i遍d(j)与d(j-1),若逆序则交换N 到 i+1推出第i小的数据到i位置第n-1遍d(j)与d(j-1)
7、,若逆序则交换N到 N推出第n-1小的数据到n-1位置(1)冒泡排序的代码如下:For i=1 To n-1 n个数需要n-1次排序For j=n To i+1 Step-1 从后往前,两两比较,一直到第i+1个数If a(j)a(j-1)Then 比较相邻的两个数temp=a(j-1):a(j-1)=a(j):a(j)=temp 小的在后面,则交换End IfNext j Next i从小到大排序,If语句中条件表达式为:a(j)a(j-1)。冒泡排序程序的实现可用双重FOR循环来实现,外层FOR循环控制是第几遍加工,内层FOR循环控制进行排序的数组元素下标的变化范围。由于每趟加工完成后,进
8、行排序的范围会发生变化(每趟减少一个),故内层FOR循环变量的下界由外层循环变量决定。例例1 (2012浙江3月高考,3,3分)实现某排序算法的部分VB程序如下:For i=1 To 4For j=5 To i+1 Step-1If a(j)a(j-1)Then t=a(j):a(j)=a(j-1):a(j-1)=t Next jNext i在经过某一遍排序“加工”后,数组元素a(1)到a(5)的数据依次为“28,70,53,57,30”。则下一遍排序“加工”后数组元素a(1)到a(5)的数据应该是()A.28,30,70,53,57B.28,30,53,57,70C.28,30,57,53,
9、70D.28,30,53,70,57ls=“”lFor i=1 to 3l For j=7 to i+1 step-1l If a(j)a(j-1)thenl k=a(j):a(j)=a(j-1):a(j-1)=kl end ifl next jls=s+str(a(i)lNext IlText1.text=s l数组元素a(1)到a(7)的数据一次为3,9,1,5,8,6,2,经过该程序段加工后,文本框Text1中显示的内容是()lA、1 2 3 B、9 8 6 C、3 9 1 D、8 6 2 A加工三遍冒泡排序算法采用冒泡排序算法对数组a中的5个数据“5,10,6,30,9”进行排序,部分
10、程序如下:For i=1 to 4For j=5 to i+1 step-1If a(j)a(j-1)thenEnd if Next jNext I以上程序是以 方式 排序的,框内的语句共执行了 次。t=a(j):a(j)=a(j-1):a(j-1)=t冒泡算法的程序优化冒泡算法的程序优化lFor i=1 To n-1lflag=0l For j=n To i+1 Step-1l If a(j)a(j+1)then K=a(j):a(j)=a(j+1):a(j+1)=kEnd if Next jNext iFor i=1 To n-1For j=1 To n-iFor i=1 to 2For
展开阅读全文