计算机专业考研必备数据结构考研要点解析.pptVIP

计算机专业考研必备数据结构考研要点解析.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
面与它关键字值相等的元素后面 { 275 275* 512 061 } i = 1 { 061 275* 512 275 } i = 2 { 061 275* 512 275 } i = 3 { 061 275* 275 512 } (3) 快速排序:一趟划分,一旦发现后面有比基准数据小的元素就交换到前面,正好把关键字值相同的元素中前一个对调到后面去了。 { 184 275 275* 061 } 一趟划分 { 061 184 275* 275 } * (4) 堆排序 { 275 275* 061 170 } 大根堆, 交换275与170 { 170 275* 061 275 } 对前3个调整 { 275* 170 061 275 } 大根堆, 交换275*与061 { 061 170 275* 275 } 对前2个调整 { 170 061 275* 275 } 大根堆, 交换170与061 { 061 170 275* 275 } 问题23. 关键字比较次数受待排序元素初始排列影响的排序方法有哪些? 解析:直接插入排序、起泡排序、快速排序。前两个当数据的初始排列已经有序时,性能显著变 * 好,最后一个正好相反。 问题24. 数据移动次数受待排序元素初始排列影响的排序方法有哪些? 解析:直接插入排序、折半插入排序、起泡排序、简单选择排序、快速排序。前四个当数据的初始排列已经有序时,性能显著变好,最后一个正好相反。 问题25. 附加存储需要较多的排序方法有哪些? 解析:归并排序需要最多,一个与原来待排序数据数组同样大的数组;基数排序需要为每个元素附加一个指针,还需要为rd (基数)个队列设置队 * 头和队尾指针;快速排序需要一个栈以实现递归,最坏情况下需要 n(元素个数)个单元。 问题26. 顺序比较元素的关键字值从而实现排序的排序方法有哪些? 解析:有直接插入排序、起泡排序、归并排序。其中归并排序最整齐,每趟都是全部顺序比较存入另一个序列,所以外排序常使用它。 * * B 树 问题8. B 树的定义是什么? 解析:它是平衡m叉查找树的变形,它继承了平衡m叉查找树的特性,但还增加了自己的要求: 根结点最少有 2 棵子树,除根结点外,其他每个结点最少有 ?m/2? 棵子树; 各个底层结点是叶结点,它们处于同一层; 叶结点下面是失败结点,是查找失败到达的结点,它们是虚拟结点,是实际上并不存在的结点,指向它们的指针为空。 * 问题9. 有 n 个关键字的B 树的高度是多少? 解析:设 B 树的高度为 h,让它每个结点充满,可占 n’ = ?n/(m-1)? 个结点,从 n’≤(mh-1)/(m-1) 可推出最小高度 h ≥ ?logm(n’*(m-1)+1)? ≈ ?logm( ?n/(m-1)?*(m-1)+1)? ≥ ?logm(n+1)? 例如,当m = 2, n = 7, h≥?log2(7+1)? = 3. 让每个结点子树棵数达到最少,可得最大高度。 * 第 1 层:最少 1 个结点; 第 2 层:最少 2 个结点; 第 3 层:最少 2 ?m/2? 个结点; ……… 第 h 层:最少 2 ?m/2?h-2 个结点; 第 h+1 层:外结点,最少 2 ?m/2?h-1 个结点; 根据关系 n+1≥2 ?m/2?h-1 有 h≤log ?m/2? ((n+1)/2)+1 例如,当m = 3, n = 255 时,?m/2? = 2, h = log2((255+1)/2)+1 = 1+log2128 = 8. * 问题10. 在 B 树上插入新关键字时应插入到何处?判断结点溢出的条件是什么?一旦结点溢出应作什么处理? 解析:在 B 树上插入新关键字时,首先使用查找算法从根开始查找应插入位置。若查找成功则不插入,若查找失败则把新关键字插入到失败时最后经过的叶结点。 判断结点溢出的条件是看插入后结点中关键字个数是否达到 m 个,若是则结点溢出。 结点溢出时需做结点分裂(仅有分裂动作)。把前 ?m/2?-1 个关键字和 ?m/2? 个子树指针留在原 * 结点,把后 m- ?m/2? 个关键字和 ?m/2? 个指针移往新创建结点,再把中间关键字 k ?m/2? 和新结点地址插入到双亲结点中。 极端情况是这种分裂处理要逐层向上,直达根结点,也可能需要创建新的根结点。因此,B 树是向上增长的。 问题11. 在 B 树上删除关键

文档评论(0)

浪漫唯美-文档菜鸟 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档