6.1-7 证明:当数组表示存储了n个元素的堆时,叶子节点的下标是n/2+1, n/2+1, ……,n

  解:最后一个叶子节点n,其父节点是n/2,在n/2后所有节点都是叶子节点,否则其子节点必大于n。

6.5-8 请给出一个时间为O(nlgk)、用来将k个已排序链表合并为一个排序链表的算法。此处n为所有输入链表中元素的个数。(提示:用一个最小堆来作k路合并)

  解:1. 建立一个k个元素的最小堆,堆中每个元素为一个链表,元素的key为链表中第一个元素的key。

         2. 不断删除根节点元素,加入到新链表,然后用根节点所指的链表中的第二个元素代替第一个元素,执行min_heapify操作。

3. 当最小堆为空时,得到新的排序链表。

6-3 Young 氏矩阵

  解:a) 略

    b) Y[1,1] 是最小元素,若为空,则Y为空。Y[m,n]是最大元素,如不为空,则Y满。

         c) 若Y[1,2] >= Y[2,1],用Y[2,1]代替Y[1,1];若Y[1,2] < Y[2,1],用Y[1,2]代替Y[1,1]。依照这种方法递归解决(m-1)*n 或 m*(n-1)问题。每次可以排除一行或一列元素。 递归式:T(p) = 1 + T(p-1)。

         d) 将新元素加到最后一个非空元素的后一个位置,比较左边和上边元素的大小。然后交换最大元素和新元素。递归这个过程即可。

    e) 利用c)中方法获得一个最小元素时间为O(n),n2 个元素总时间为O(n3)。

         f)  将给定数与矩阵左下角元素(该元素为它所在列的最大值,所在行的最小值)相比,每次可以排除一行或一列。时间复杂度为O(m+n)。

转载于:https://www.cnblogs.com/meteorgan/archive/2012/02/10/2345312.html

算法导论-堆排序习题解相关推荐

  1. 算法导论 练习12.1

    12.1-1 对于关键字集合{1,4,5,10,16,17,21}\{1,4,5,10,16,17,21\}{1,4,5,10,16,17,21},分别画出高度为2.3.4.5和6的二叉搜索树. 这里 ...

  2. 算法导论chapter6 堆排序的代码

    按照<算法导论>上的伪代码实现了,刚开始没注意index的问题,导致错误,看来对于伪代码实现C还是要注意下啊!! #include<iostream> #include < ...

  3. 算法导论 c语言,算法导论 之 堆排序[C语言]

    一.算法实现 堆排序算法的时间复杂度为O(nlgn),其算法实现如下: void heap_sort(int *array, int max) { int idx = 0; build_max_hea ...

  4. 算法导论学习笔记 第6章 堆排序

    在本章中介绍了另一种排序算法:堆排序(heapsort).与归排序一样,但不同于插入排序的是,堆排序的时间复杂度式(Onlgn).而与插入排序相同,但不同于归并排序的是,堆排序同样具有空间原址性(我理 ...

  5. 算法导论习题,思考题题解博主录

    算法导论最好结合课后习题来看,以查漏补缺,检验自己对知识的掌握和理解水平 我在看的过程中,参考了以下博主的博客 http://blog.csdn.net/longhuihu?viewmode=cont ...

  6. 算法导论主定理证明(3)

    章节4.6.1引理4.3的第一句就不证了,因为比较简单. 这里是最后一部分的证明,即算法导论4.6.2---向下取整和向上取整部分. 呼~到这里为止终于把这个定理证完了! 仔细用mathtype码证明 ...

  7. 算法导论中C语言代码,算法导论-学习笔记与进度

    算法导论 阅读进度 第一部分 基础知识 第一章 计算中算法的角色 Done 1.1 算法 输入与输出 算法可以解决哪些问题 数据结构 技术 一些比较难的问题 1.2 作为一种技术的算法 效率 算法和其 ...

  8. 《算法导论》中动态规划求解钢条切割问题

    动态规划算法概述 动态规划(dynamic programming)1是一种与分治方法很像的方法,都是通过组合子问题的解来求解原问题.不同之处在于,动态规划用于子问题重叠的情况,比如我们学过的斐波那契 ...

  9. 【啃不完的算法导论】- 动态规划 - 最长公共子序列(概念篇)

    以下内容纯是为了熟悉<算法导论>中的内容,高手可略过,其中涉及的书本内容的版权归原作者.译者.出版社所有 ========================================= ...

最新文章

  1. 1014. Best Sightseeing Pair
  2. android阿里滑块验证码,在Android App中接入HTML5滑块验证
  3. 基于深度强化学习的区域化视觉导航方法​​
  4. 深入理解JavaScript系列:根本没有“JSON对象”这回事!
  5. GraphX:基于Spark的弹性分布式图计算系统
  6. 在CentOS7上安装vim编辑器报错无法解析阿里云主机
  7. leancloud上传php源码部署,部署灵动云商到LeanCloud[图解]
  8. nodejs es6 中的单例模式
  9. Security+ 学习笔记28 云计算
  10. 毕设题目:Matlab语音识别
  11. 谷歌卫星地图下载助手
  12. cocos2d-x打印log
  13. 计算天数c语言pta,PTA练习7-9 计算天数 (15 分)
  14. ubuntu20.04安装Strom集群
  15. okv5 API常见问题
  16. 计算机管理home,电脑home键是什么意思
  17. 兄弟们,我又回来了,干货太多让你们久等了
  18. SAP 供应商合作伙伴功能设置
  19. 面试时总有恐惧感要如何有效消除呢
  20. 现在建网站你会选择自己建站还是在线建站平台?

热门文章

  1. Chrome截图扩展程序-“截图快手”
  2. wxpython pypi_Python iwx包_程序模块 - PyPI - Python中文网
  3. bluetooth射频已关闭请打开bluetooth射频_【05/25 - 公告】微软已推送 Build 18362.145 (KB4497935) 版本...
  4. 活动服务器优化 暂时关闭,服务器优化之关闭不必要的服务
  5. 雪花怎么画_平安夜怎么过?画个圣诞妆,你是最迷人嘎,你知道吗
  6. 图像检索从入门到进阶
  7. Python机器学习:KNN算法07数据归一化
  8. 重庆科技学院c语言程序设计报告,2020年重庆科技学院《911程序设计综合》硕士研究生招生复试大纲...
  9. Java 算法 学做菜
  10. Java 蓝桥杯 龟兔赛跑预测