搜索
    上传资料 赚现金
    【新教材】粤教版(2019)高中信息技术选择性必修一第5章《数据结构的应用》课件
    立即下载
    加入资料篮
    【新教材】粤教版(2019)高中信息技术选择性必修一第5章《数据结构的应用》课件01
    【新教材】粤教版(2019)高中信息技术选择性必修一第5章《数据结构的应用》课件02
    【新教材】粤教版(2019)高中信息技术选择性必修一第5章《数据结构的应用》课件03
    【新教材】粤教版(2019)高中信息技术选择性必修一第5章《数据结构的应用》课件04
    【新教材】粤教版(2019)高中信息技术选择性必修一第5章《数据结构的应用》课件05
    【新教材】粤教版(2019)高中信息技术选择性必修一第5章《数据结构的应用》课件06
    【新教材】粤教版(2019)高中信息技术选择性必修一第5章《数据结构的应用》课件07
    【新教材】粤教版(2019)高中信息技术选择性必修一第5章《数据结构的应用》课件08
    还剩29页未读, 继续阅读
    下载需要30学贝 1学贝=0.1元
    使用下载券免费下载
    加入资料篮
    立即下载

    高中信息技术粤教版 (2019)选修1 数据与数据结构5.1.1 迭代精品ppt课件

    展开
    这是一份高中信息技术粤教版 (2019)选修1 数据与数据结构5.1.1 迭代精品ppt课件,共37页。PPT课件主要包含了新知导入,教学目录,新知讲解,课堂练习等内容,欢迎下载使用。

    查找和排序,与我们的学习、生活息息相关。如从字典 中查找汉字,从电话号码本中查找电话,在图书馆中查找图 书,高考查询成绩等;教师按身高来安排学生的座位,大学 按照高考成绩高低顺序录取新生,网上商城按照销量高低排 序来推荐商品等。在信息时代,数据的增长速度越来越快, 导致信息量呈几何级的增长。在庞大的数据里进行人工查找和排序是非常困难的,甚至是无法办到的,所以必须依靠计 算机才能快速、准确地对数据进行查找和排序。
    在利用计算机解决实际问题中,迭代和递归都是非常实用的算法,很多难的问题都是通过迭代或递归算法解出来的。
    1.迭代法迭代法是用计算机解决问题的一种基本方法。它利用计算机运算速度快、适合做重复性操作的特点,让计算机重复执行一组指令(或一定步骤),在每次执行这组指令(或这些步骤)时,都从变量的原值推出它的一个新值。
    int n,sum=0; //sum初始化为0 fr(int i=1; i<=n; i++) //用循环实现迭代 { sum=sum+i; //迭代过程 }
    (1)确定迭代变量。在可以用迭代法解决的问题中,至少存在一个直接或间接地不断由旧值递推出新值的变量,这个变量就是迭代变量。在例1中,sum就是迭代变量。(2)建立关系式。迭代关系式是指如何从变量的前一个值推出其下一个值的公式(或关系)。迭代关系式的建立是解决迭代问题的关键,通常可以使用顺推或倒推的方法来完成。例1中,“sum=sum+i”就是迭代关系式,通过此式可以进行迭代求和。(3)过程控制。编写迭代程序必须考虑在什么时候结束迭代过程,不能让迭代过程无休止地重复执行下去。迭代过程的控制通常可分为两种情况:一种是所需的迭代次数是个确定的值,可以计算出来;另一种是所需的迭代次数无法预先确定。对于前一种情况,可以构建一个固定次数的循环来实现对迭代过程的控制;对于后一种情况,需要进一步分析确定迭代过程结束的条件。在例1中,用了fr循环语句进行过程控制。
    一对刚出生的小兔子,一个月后就能成长为成年兔,再过一个月后(即第三个 月起)就每月生一对兔子。新生的兔子也按这个规律繁殖。现在仅有一对刚出生的小兔子,问在没有兔子死亡的情况下,一年后总共繁殖成多少对兔子。
    f(1)=1,f(2)=1,f(n)=f(n-1)+f(n-2) (n>=3)
    算法分析:设f(n)表示第n个月的兔子对数,先看前几个月的情况:第一个月有一对 刚出生的兔子,即f(1)=1;第二个月,这对兔子长成成年兔,兔子对数还是只有1对, 即f(2)=1;第三个月,这对成年兔生出一对小兔,共有两对兔子,即f(3)=2;第四个月, 成年兔又生出一对小兔,第三个月出生的兔子长成成年兔,共有三对兔子,即f(4)=3; 第五个月,原成年兔又生出一对小兔,新成年兔也生出一对小兔,共有五对兔子,即 f(5)=5……以此类推,每个月兔子数为1,1,2,3,5,8,13,21,… 转化为数学模型,设f(n)为第n个月的兔子对数,则有:
    下面是实现求一年后繁殖的兔子总数的核心代码,其中f1、f2、fn这三个迭代变量分别代表前两个月、前一个月、当前月的兔子数,用迭代关系式“fn = f1 + f2;”计算当月的兔子数,再用“f1 = f2; f2 = fn;”为下一个月的迭代计算做好准备。
    int f1=1,f2=1,fn=0; //迭代变量 fr(int i=3; i<=12; i++) //用i的值来控制迭代的次数 { fn=f1+f2; //计算当月数量 f1=f2; //f1、f2迭代计算,为下个月迭代赋初值 f2=fn; }
    每个月的兔子对数组成数列:1,1,2,3,5,8,13,21,34,55,89,144,…此数列也称为斐波那契数列。
    1.递归的基本概念若一个对象用自己来定义自己或部分地包含自己,则称这个对象是递归的;若一个过程直接地或间接地调用自己,则称这个过程是递归过程。在程序设计中,函数直接调用函数本身,称为直接递归调用;在函数中调用其他函数,其他函数又调用原函数,构成了函数自身的间接调用,则称为间接递归调用。2.递归在数学中的应用:在数学中,有这样一种数列,很难求出它的通项公式,但数列中各项间关系却很简单,于是人们想出另一种办法来描述这种数列,即通过初值及与前面临近几项之间的关系来描述。要使用这样的描述方式,至少要提供两个信息:一是最前面几项的数值,二是数列间各项的关系。
    这是递归函数的最简单形式,从中可以明显看出递归函数一般的写法特点:先处理一 些特殊情况(递归终结条件),再处理递归关系。 递归函数的执行过程总是先通过递归关系不断地缩小问题的规模,直到简单到可以作 为特殊情况处理而得出直接的结果,再通过递归关系逐层返回到原来的数据规模,最终得出问题的解。
    (1)递归算法的思想。为求解一个不能或不好直接求解的“大问题”,设法将它分解成规模较小但解法相同的“小问题”,并且这些“小问题”也能采用同样的分解方法再分解成规模更小的“小问题”,当规模最小的一个或几个值能直接得出解时,再利用这些“小问题”的解构造出“大问题”的解。(2)递归算法解决问题的特点。递归算法有四个特性:①必须有明确的递归终结条件,否则程序将陷入无穷循环而造成栈溢出。②子问题在规模上比原问题小,或更接近终止条件。③子问题可通过再次递归调用求解或因满足终止条件而直接求解。④子问题的解应能组合为整个问题的解。(3)递归算法一般用于解决的三类问题。①数据的定义是按递归定义的。如数学上常用的阶乘数列、斐波那契数列、幂函数等,它们的定义都是递归的。②问题方便用递归算法实现。有些问题用递归方法实现更方便,如求阶乘函数的值。 ③数据的结构形式是按递归定义的。如链表、树的遍历、图的搜索等。
    在日常生活和学习中,我们经常要进行查找工作,例如从字典中查找汉字、单词,从电话号码本中查找电话,在图书馆中查找图书,高考查询成绩等。其实,“电话号码本”“字典”等都可以看作一张表,查找则是在一个含有众多数据元素(或记录)的表中找出某个特定的数据元素(或记录)。在信息时代,由于信息量巨大,人工查找是非常困难的,甚至是无法办到的,所以必须依靠计算机才能快速、准确地查找信息。
    顺序表是指采用顺序存储的方式存储的集合或线性表。在本章,我们主要探讨一维数 组这种顺序表的顺序查找和二分查找方法。 顺序查找也称为线性查找,它的基本思想是:从顺序表的一端开始,将每个元素的关 键字与给定值k进行比较,如果相同,则表明查找成功,返回该元素的下标;如果在所有 元素都进行了比较后,仍找不到关键字为k的元素,则表明查找失败,返回特定值-1。 在超市中,要实现查询某商品在哪个货架,我们可以用数组存储商品的编号、存放的 货架等信息。程序运行时,输入需查询商品的编号,然后在数组中依次查找编号,就可查找出该商品的信息,方便顾客查找商品。下面是顺序查找算法的核心代码:
    顺序查找虽然能帮助顾客查找到所需信息,但由于超市销售的商品种类繁多,数据量比较大,而顺序查找每次都要从头到尾去查找,需要花费不少时间,很多顾客没有耐心长时间等待查询结果。所以查找的速度必须要快,可以考虑用查找速度更快的二分查找来实现。二分查找又称折半查找,是针对顺序存储的有序表(有序表是指各元素按关键字的值以升序或降序存放的表)进行的查找,它是一种较常用的查找方法。在按升序存储的顺序表a中查找k,其二分查找算法流程如下:(1) 选取查找范围a[0]~a[n-1]。(2) 选定查找范围的中点元素a[mid],与k值比较。(3) 若相等,则查找成功,返回该元素的下标。(4) 若k< a[mid],则将范围缩小到左子表a[0]~a[mid-1]。(5) 若k> a[mid],则将范围缩小到右子表a[mid+1]~a[n-1]。(6) 迭代以上过程,直到找到k或当前查找区间为空(即查找失败)。
    解决同一个问题,我们可以用不同的算法编写程序,不同的算法对数据结构的要求可 能是不同的。对比顺序查找与二分查找算法,当数据量较大时,二分查找会比顺序查找快 很多,这是它的主要优点,但它要求查找表是有序的,所以在进行二分查找之前,必须先 对查找表进行排序。另外,二分查找要求表是顺序存储的,为保持表的有序性,在进行插 入、删除操作时,都必须移动大量记录。因此,二分查找的高查找效率是以排序为代价 的,所以它特别适合一经建立就很少移动而且经常需要查找的线性表。 了解不同算法的特点,可以帮助我们在解决实际问题时,从不同的算法中选择出较为 合适的一种,或对现有算法进行改进或创新,从而设计出更好的算法
    排序与我们的日常生活息息相关。例如,教师按身高来安排学生的座位,试卷和答题 卡按从小号到大号的顺序来整理,各类比赛按成绩的高低来排名,查询火车票时会按照出 发的先后来显示,到网上购物会参考销量高低来排序购买等。排序是数据处理和分析中最 常用的运算之一,它往往可以提高数据处理的效率;排序也是最基本的算法之一,其他很 多算法都是以排序算法为基础,所以研究和掌握排序算法是非常重要的。在信息时代,面 对庞大的信息量,想要靠人工进行排序,会耗费大量时间和精力,甚至无法完成。所以, 依靠计算机快速、准确地对数据进行排序,是很有必要的。
    1.排序排序是指把一个任意序列的数据元素重新排列成按照某关键字递增或递减序列的过程。作为排序依据的数据项称为排序关键字,简称关键字(Key)。排序时选取哪一个数据项作为关键字,应根据具体情况而定。
    假定在待排序的序列中,存在多个具有相同键值的数据元素,若经过排序,这些数据元素的相对次序仍然保持不变,则称这种排序是稳定的排序;否则,称这种排序是不稳定的排序。例如以表5-3中的“销售数量”来排列名次:待排序的序列:25 10 17 13 10 37 6 //给其中一个“10”加底色以区分稳定的排序:6 10 10 13 17 25 37 //因为10还是在 10 的前面不稳定的排序:6 10 10 13 17 25 37 //因为10已在 10 的后面在排序过程中,可以使用内存储器,也可以使用外存储器。如果参加排序的数据元素的数量不多,能够全部调入内存中进行排序,则称这种排序为内部排序;若参加排序的数据元素的数量较大,需要分批调入内存中进行排序,排序后再分批存回外存储器,则称这种排序为外部排序。
    内部排序的方法很多,按照排序过程中所用策略的不同,通常分为五大类:插入排序、选择排序、交换排序、归并排序和基数排序。其中,交换排序又包含冒泡排序和快速排序,都是常用的排序算法。冒泡排序是一种简单、常见的排序算法,适合初学者学习;快速排序是对冒泡排序的改进,它是目前内部排序中平均速度最快的排序算法,也是20世纪十大算法之一。
    排序的方法很多,通常都要进行两种基本操作:(1)比较两个元素关键字的大小。(2)根据比较结果,将元素从一个位置移到另一个位置。其中,第(1)种操作对大多数排序方法来说都是必要的,第(2)种操作可通过改变元素的存储方式,比如采用链表存储结构存储的数据元素。从操作角度看,排序是线性结构的一种操作,待排序元素可以用顺序存储结构和链式存储结构来存储。在顺序存储结构中,待排序元素按自然顺序存放在连续的一块内存空间中,元素之间的次序关系由其存储位置决定,所以排序过程中一定要移动元素;在链式存储结构中,待排序元素按原始次序链接起来,排序时只需要修改链表指针,不用移动元素。
    冒泡排序(Bubble Srt)是一种简单的交换排序算法,它是通过交换相邻的两个数据元素,逐步将待排序列变成有序序列。它的基本思想如下:(1)假设待排序元素有n个,从第一个元素开始,依次交换相邻的两个逆序元素,直到最后一个元素为止,当第一趟排序结束,就会将最大(小)的元素移动到序列的末尾。(2)然后按照以上方法进行第二趟排序,次大(小)的元素将会被移动到序列的倒数第二个位置。(3)依次类推,经过n-1趟排序后,整个元素序列就成了一个有序(升序或降序)的序列。每趟排序过程中,值小(大)的元素向前移动,值大(小)的元素向后移动,就像气泡一样向上升,因此将这种排序方法称为冒泡排序。
    最少比较n-1次,最多比较n(n-1)/2次
    1.快速排序的基本思想快速排序采用分治法的策略:将原问题划分成规模更小但与原问题相似的小问题,然后用递归法解决这些小问题,最后将它们组合形成原问题的解。
    以关键字升序排列为例,设待排序列存放在数组a[1..n]中,n为元素个数, i、j分别是待排序列首尾关键字的下标,初值分别为1和n,令a[1]作为基准元素赋给pivtkey:(1)j从右往左扫描,若i= pivtkey,j=j-1,否则将a[j]与a[i]交换。(2)i从左往右扫描,若i例6:假设待排序列为39,26,54,83,91,47,18,32,用快速排序算法对该序列进行升序排序,第一趟快速排序的过程如图5-8所示,快速排序的全部过程如图5-9所示。
    选择排序就是从a[0]开始依次和后面的元素进行比较,第一遍把a[0]及其以后中最小的筛选出来并将值赋给a[0],第二遍把a[1]及其以后中最小的筛选出来并赋值,依次类推,内层循环的j=i+1是为了不让a[i]和本身比较而浪费时间,选择排序法是每个元素都要和比自己大的元素进行一次比较。总之:内循环每循环完一次就会就把最小的值给相应的a[i]
    相关课件

    粤教版 (2019)3.1.1 线性表及其运算完美版ppt课件: 这是一份粤教版 (2019)<a href="/xx/tb_c4007258_t3/?tag_id=26" target="_blank">3.1.1 线性表及其运算完美版ppt课件</a>,共30页。PPT课件主要包含了新知讲解,字符串的描述,字符串的存储结构,循环队列,汽车轮渡口等内容,欢迎下载使用。

    粤教版 (2019)选修1 数据与数据结构2.1.1 数据存储的顺序结构优秀课件ppt: 这是一份粤教版 (2019)选修1 数据与数据结构<a href="/xx/tb_c4007238_t3/?tag_id=26" target="_blank">2.1.1 数据存储的顺序结构优秀课件ppt</a>,共32页。PPT课件主要包含了教学目录,新知讲解,intb4等内容,欢迎下载使用。

    粤教版 (2019)选修1 数据与数据结构1.3.1 数据结构优质课ppt课件: 这是一份粤教版 (2019)选修1 数据与数据结构<a href="/xx/tb_c4007230_t3/?tag_id=26" target="_blank">1.3.1 数据结构优质课ppt课件</a>,共32页。PPT课件主要包含了教学目录,1数据及其价值,新知讲解,课堂练习,3认识数据结构,数据的逻辑结构,数据的存储结构,毛巾洗发水牙刷,数据类型的分类等内容,欢迎下载使用。

    免费资料下载额度不足,请先充值

    每充值一元即可获得5份免费资料下载额度

    今日免费资料下载份数已用完,请明天再来。

    充值学贝或者加入云校通,全网资料任意下。

    提示

    您所在的“深圳市第一中学”云校通为试用账号,试用账号每位老师每日最多可下载 10 份资料 (今日还可下载 0 份),请取消部分资料后重试或选择从个人账户扣费下载。

    您所在的“深深圳市第一中学”云校通为试用账号,试用账号每位老师每日最多可下载10份资料,您的当日额度已用完,请明天再来,或选择从个人账户扣费下载。

    您所在的“深圳市第一中学”云校通余额已不足,请提醒校管理员续费或选择从个人账户扣费下载。

    重新选择
    明天再来
    个人账户下载
    下载确认
    您当前为教习网VIP用户,下载已享8.5折优惠
    您当前为云校通用户,下载免费
    下载需要:
    本次下载:免费
    账户余额:0 学贝
    首次下载后60天内可免费重复下载
    立即下载
    即将下载:资料
    资料售价:学贝 账户剩余:学贝
    选择教习网的4大理由
    • 更专业
      地区版本全覆盖, 同步最新教材, 公开课⾸选;1200+名校合作, 5600+⼀线名师供稿
    • 更丰富
      涵盖课件/教案/试卷/素材等各种教学资源;900万+优选资源 ⽇更新5000+
    • 更便捷
      课件/教案/试卷配套, 打包下载;手机/电脑随时随地浏览;⽆⽔印, 下载即可⽤
    • 真低价
      超⾼性价⽐, 让优质资源普惠更多师⽣
    VIP权益介绍
    • 充值学贝下载 本单免费 90%的用户选择
    • 扫码直接下载
    元开通VIP,立享充值加送10%学贝及全站85折下载
    您当前为VIP用户,已享全站下载85折优惠,充值学贝可获10%赠送
      充值到账1学贝=0.1元
      0学贝
      本次充值学贝
      0学贝
      VIP充值赠送
      0学贝
      下载消耗
      0学贝
      资料原价
      100学贝
      VIP下载优惠
      0学贝
      0学贝
      下载后剩余学贝永久有效
      0学贝
      • 微信
      • 支付宝
      支付:¥
      元开通VIP,立享充值加送10%学贝及全站85折下载
      您当前为VIP用户,已享全站下载85折优惠,充值学贝可获10%赠送
      扫码支付0直接下载
      • 微信
      • 支付宝
      微信扫码支付
      充值学贝下载,立省60% 充值学贝下载,本次下载免费
        下载成功

        Ctrl + Shift + J 查看文件保存位置

        若下载不成功,可重新下载,或查看 资料下载帮助

        本资源来自成套资源

        更多精品资料

        正在打包资料,请稍候…

        预计需要约10秒钟,请勿关闭页面

        服务器繁忙,打包失败

        请联系右侧的在线客服解决

        单次下载文件已超2GB,请分批下载

        请单份下载或分批下载

        支付后60天内可免费重复下载

        我知道了
        正在提交订单

        欢迎来到教习网

        • 900万优选资源,让备课更轻松
        • 600万优选试题,支持自由组卷
        • 高质量可编辑,日均更新2000+
        • 百万教师选择,专业更值得信赖
        微信扫码注册
        qrcode
        二维码已过期
        刷新

        微信扫码,快速注册

        还可免费领教师专享福利「樊登读书VIP」

        手机号注册
        手机号码

        手机号格式错误

        手机验证码 获取验证码

        手机验证码已经成功发送,5分钟内有效

        设置密码

        6-20个字符,数字、字母或符号

        注册即视为同意教习网「注册协议」「隐私条款」
        QQ注册
        手机号注册
        微信注册

        注册成功

        下载确认

        下载需要:0 张下载券

        账户可用:0 张下载券

        立即下载
        账户可用下载券不足,请取消部分资料或者使用学贝继续下载 学贝支付

        如何免费获得下载券?

        加入教习网教师福利群,群内会不定期免费赠送下载券及各种教学资源, 立即入群

        即将下载

        【新教材】粤教版(2019)高中信息技术选择性必修一第5章《数据结构的应用》课件
        该资料来自成套资源,打包下载更省心 该专辑正在参与特惠活动,低至4折起
        [共10份]
        浏览全套
          立即下载(共1份)
          返回
          顶部
          Baidu
          map