数据结构第十章.ppt

  1. 1、本文档共47页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

数据结构主要讨论的问题:几个基本概念;插入类排序;交换类排序;选择类排序;归并排序;基数排序..堆排序.利用堆及其运算,可以很容易地实现选择排序的思路..堆的定义---堆是完全二叉树的数组表示,有最小堆与最大堆.Ki?K2i+1Ki?K2i+2Ki?K2i+1Ki?K2i+2.堆运算--堆的筛选voidHeapAdjust(ElemR[],ints,intm){rc=R[s];for(j=2*s;j=m;j*=2){if(jmR[j].keyR[j+1].key)++j;if(rc.key=R[j].key)break;R[s]=R[j];s=j;}R[s]=rc;//插入}.堆的筛选方法描述若建最大堆:1)首先,左右孩子比,且沿大树筛选;2)然后,父子比,若父大则筛选完毕,否则,交换父子,并且沿下一层继续筛选.若建最小堆:1)首先,左右孩子比,且沿小树筛选;2)然后,父子比,若父小则筛选完毕,否则,交换父子,并且沿下一层继续筛选..堆排序---堆排序分为两个步骤:第一步,根据初始输入数据,利用堆的筛选方法形成初始堆;第二步,通过一系列的对象交换和重新筛选构建新的堆..第一步如何做?1)把待排序列画成一棵完全二叉树;2)从n/2向下取整处的结点开始筛选;例:对于输入关键字序列48,70,65,33,24,56,12,92进行建立堆排序的初始堆(小顶堆),要求画出主要过程..堆排序---堆排序分为两个步骤:第一步,根据初始输入数据,利用堆的筛选方法形成初始堆;第二步,通过一系列的对象交换和重新筛选构建新的堆..第二步如何做?1)堆中第一个元素与最后一个元素互换;2)从余下n-1个元素中的n/2处的结点开始筛选;例:对于输入关键字序列48,70,65,33,24,56,12,92进行堆排序.(要求待排序列递增排列).思考:待排序列递增排列,建哪种堆?*第十章内部排序.几个基本概念.排序:将一个记录的任意序列重新排列成一个按关键字有序的序列..稳定排序:若待排序的记录中存在两个或两个以上的主关键字相等的记录,排序前的序列中Ri在Rj的前面,若在排序后Ri仍在Rj的前面,则称所用的排序方法是稳定的,否则,称所用的排序方法是不稳定的..内部排序:待排序的序列存放在计算机的内存中进行的排序过程..外部排序:若待排序的记录量很大,以致内存中一次不能容纳全部记录,在排序过程中需对外存进行访问的排序过程..本章讨论内部排序,且所有关键字都是整数,待排序的记录以顺序存储结构存储..排序的时间开销:排序的时间开销是衡量算法好坏的最重要的标志.排序的时间开销可用算法执行中的数据比较次数与数据移动次数来衡量..各节给出算法运行时间代价的大略估算一般都按平均情况进行估算.对于那些受对象关键码序列初始排列及对象个数影响较大的,需要按最好情况和最坏情况进行估算..插入排序.插入排序的基本思想每步将一个待排序的对象,按其关键码大小,插入到前面已经排好序的一组对象的适当位置上,直到对象全部插入为止..插入类排序共有:直接插入排序,折半插入排序,2-路插入排序,表插入排序,希尔排序..直接插入排序---直接插入排序的基本思想是:当插入第i(i?1)个对象时,前面的V[0],V[1],…,v[i-1]已经排好序.这时,用v[i]的关键码与v[i-1],v[i-2],…的关键码顺序进行比较,找到插入位置即将v[i]插入,原来位置上的对象向后顺移.各趟排序结果21254925*1608012345012345temp21254925*160825i=1012345temp21254925*160849i=221254925*1608012345012345temp21254925*1608i=40

文档评论(0)

177****7891 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档