书签 分享 收藏 举报 版权申诉 / 25
上传文档赚钱

类型5.3.1 数据排序之冒泡排序 ppt课件-2023新浙教版(2019)《高中信息技术》选修1.pptx

  • 上传人(卖家):Q123
  • 文档编号:6549477
  • 上传时间:2023-07-20
  • 格式:PPTX
  • 页数:25
  • 大小:962.69KB
  • 【下载声明】
    1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
    2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
    3. 本页资料《5.3.1 数据排序之冒泡排序 ppt课件-2023新浙教版(2019)《高中信息技术》选修1.pptx》由用户(Q123)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
    4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
    5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
    配套讲稿:

    如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。

    特殊限制:

    部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。

    关 键  词:
    高中信息技术 5.3.1 数据排序之冒泡排序 ppt课件_2023新浙教版2019高中信息技术选修1 5.3 数据 排序 冒泡 ppt 课件 _2023 新浙教版 2019 高中 信息技术 选修 下载 _必修2 信息系统与社会_教科版(2019)_信息_高中
    资源描述:

    1、数据排序数据排序排序排序就是整理数据整理数据的序列,使其中元素按照某个值的递增(或递减)的次序重新排列的操作。在排序的过程中,数据元素的值保持不变,但其在序列中的顺序顺序可能会改变。对于一次具体排序而言,总是针对某一组数据元素某一组数据元素的某种具体的序关系进行操作。待排序数据的存储方式一般有两种:一种是将数据依次存放在一组地址连续的存储单元中,即以数组数组作为存储结构。在这种情况下,排序过程是对数据本身进行物理重排物理重排,即通过关键字之间的比较判断,将数据移到合适的位置。另一种存储方式是以链表链表作为存储结构,排序过程中无须移动数据,仅需修改指针修改指针即可。以数组为例,每个数组元素都对应

    2、存储一个数据。如下图所示,存储在数组元素d0中的数据是23,d1中存储的是20,等等。232320201313181814141111d012345如果对数组d中的6个数据按升序升序进行排序,即调整数组d中所有数据的存储位置,使最小的数据存储在d0中,次小的数据存储在d1中最大的数据存储在d5中。数组d中的所有数据满足:d0d1d2d3d4d5。这里两个数组元素的比较:didj(i=0,1,5;j=0,1,5),指的是di中的数据小于或等于dj中的数据。对数组d按升序进行排序后,数据的存储情况如下图所示。111113131414181820202323d012345Python中,对列表进行排

    3、序的方法有两种:一种是列表自带的sort方法,只适用于列表,直接对列表进行排序,不会产生新的序列;另外一种是内建函数sorted方法,返回一个新的序列,而原来的序列依然存在。两者的使用方法如下所示:a=5,7,6,3,4,1,2b=sorted(a)print(a)5,7,6,3,4,1,2print(b)1,2,3,4,5,6,7a.sort()print(a)1,2,3,4,5,6,7a.sort(reverse=True)#reverse=True实现按降序排序print(a)7,6,5,4,3,2,1冒泡排序冒泡排序冒泡排序是在一系列数据中对相邻两个数依次进行比较和调整,让较大的数“下

    4、沉(上冒)”,较小的数“上冒(下沉)”的一种排序技术。23232013181411d5d4d3d2d1d02020231318141120201323181411202013182314112020131814231120201318141123冒泡排序算法对数组冒泡排序算法对数组d d的第一遍加工过程的第一遍加工过程冒泡排序算法对数组冒泡排序算法对数组d d的第二遍加工过程的第二遍加工过程2020131814112313132018141123131318201411231313181420112313131814112023冒泡排序算法对数组冒泡排序算法对数组d d的第三遍加工过程的第三遍

    5、加工过程13131814112023131318141120231313141811202313131411182023冒泡排序算法对数组冒泡排序算法对数组d d的第四遍加工过程的第四遍加工过程131314111820231313141118202313131114182023冒泡排序算法对数组冒泡排序算法对数组d d的第五遍加工过程的第五遍加工过程1313111418202311111314182023O(nO(n2 2)排序过程中,按下面的方式使用变量i和j:i:记录正进行的处理遍数,第1遍处理时值为1,第2遍处理时值为2,以此类推。j:记录当前数组元素的下标。每遍处理过程中,j值总是从第

    6、一个数组元素的下标值0开始,按每次加1的方式,直至j=n-i-1为止。每当j取定一个值后,当前数组元素dj将与它的后一个元素dj+1进行比较,若djdj+1,则互换这两个数组元素中的数据。如下图所示是6个元素进行5遍加工的过程。23232013181411d5d4d3d2d1d020201318141123jj+1i=113131814112023i=313131411182023i=213131114182023i=411111314182023i=5对规模为n的数组d,冒泡排序的算法流程图如图所示:开始是i 1,L njL-i?j 0iL-1?是djdj+1?i i+1否交换dj和dj+1

    7、否j j+1是输出结果结束否程序代码实现:程序代码实现:def bubble_sort(d):length=len(d)#序列长度为length,需要执行length-1遍加工 for i in range(1,length):for j in range(0,length-i):if djdj+1:temp=dj dj=dj+1 dj+1=temp冒泡排序迁移应用及原理1.冒泡排序迁移应用一(升序)for i in range(1,n):for j in range(n-1,i-1,-1):if ajaj-1:temp=aj aj=aj-1 aj-1=temp迁移原理:每一遍冒泡都是从后往前

    8、两两比较的,因此每遍排序达到的效果是把最小值推到了最前面。2.冒泡排序迁移应用二(升序)n=len(a)for i in range(n-1):for j in range(n-2,i-1,-1):if aj+1ai:ai,aj=aj,ai迁移原理:在第i遍的排序中,把索引为i+1到索引为n-1的数组元素依次与ai比较,如果比ai小,则两两交换。它的特点是所有的数与一个固定位置上的数进行比较。排序过程中,自前向后将数据进行有序排列。4.冒泡排序的优化迁移当某一遍排序过程中没有数据发生交换时,说明数据已经有序已经有序,无需进行下一遍排序,代码如下:n=len(a)flag=True#flag值为

    9、True表示一遍加工中发生过交换i=1while i=n-1 and flag=True:flag=False for j in range(n-1,i-1,-1):if ajaj-1:aj,aj-1=aj-1,aj flag=True i+=1迁移原理:用一个逻辑变量flag标记某一遍排序过程中是否有数据交换另一种写法:n=len(a)flag=True#flag值为True表示一遍加工中发生过交换i=1while i=n-1 and flag=True:flag=False for j in range(n-1,i-1,-1):if ajaj-1:aj,aj-1=aj-1,aj flag=

    10、True if flag=False:break i+=1迁移原理:这种写法的排序遍数是i,在循环体内遇到了break语句,程序跳出该循环,不再执行“i+=1”指令。练一练1.采用冒泡排序算法对数据序列“1,7,2,5,12,15,27,10,6,30”完成升序排序,理论上讲共需进行排序的遍数为()A.6遍 B.7遍 C.8遍 D.9遍2.采用冒泡排序算法对数据序列“2,15,7,5,9,18,30,25”完成降序排序,共需进行数据交换的次数为()A.21次 B.22次 C.23次 D.24次D DC C3.采用冒泡排序算法对8个数据“18,15,9,3,7,5,16,21”进行降序排序,则第

    11、2遍的排序结果是()原始数据原始数据18,15,9,3,7,5,16,2118,15,9,3,7,5,16,21第1遍完成后的数据为21,18,15,9,3,7,5,16第2遍完成后的数据为第3遍完成后的数据为A.21,18,16,15,9,7,5,3B.21,18,16,15,9,3,7,5C.21,18,16,15,9,7,3,5D.21,18,16,15,9,3,5,7B B4.若冒泡排序在某一遍加工过程中没有数据交换,则说明数据已经有序,优化程序段如下:a=58,36,23,97,77n=len(a)i=1flag=Truewhile iaj-1:aj,aj-1=aj-1,aj flag=True i+=1数组元素a0到a4的值依次为“58,36,23,97,77”,经过该程序段“加工”后,变量i的值是_。4 4谢 谢

    展开阅读全文
    提示  163文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    关于本文
    本文标题:5.3.1 数据排序之冒泡排序 ppt课件-2023新浙教版(2019)《高中信息技术》选修1.pptx
    链接地址:https://www.163wenku.com/p-6549477.html
    Q123
         内容提供者     

    Copyright@ 2017-2037 Www.163WenKu.Com  网站版权所有  |  资源地图   
    IPC备案号:蜀ICP备2021032737号  | 川公网安备 51099002000191号


    侵权投诉QQ:3464097650  资料上传QQ:3464097650
       


    【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。

    163文库