春招笔记 堆

1.  堆是完全二叉树,根据父节点和子节点的关系,可以分为大根堆和小根堆。    大根堆的父节点比它的所有子节点大,小根堆的父节点比它的所有子节点小。    兄弟节点间不按大小排序。

2.堆是一种结构,逻辑上像完全二叉树,本质上是int型数组,可以将这些值写成树的节点的形式,父亲节点的值比两个孩子的节点,是小根堆

3.判断堆的办法是把序列看成一棵完全二叉树,按层序遍历,若树中的所有非终端节点的值均不大于(或不小于)其左右孩子的节点的值,则该序列为堆。

4.  一般堆排序的话我们都把A[0]作为一个哨兵,不存储实际数据,此时(父节点=子节点/2),而题目要求是A[0]存放的是根节点,则我们可以用相同的转换(父节点=(子节点-1)/2)。

5. 时间复杂度分析,第一步首先建堆需要用时o(n),第二步对大小为n的堆,取出元素放入数组尾部用时o(1),重新进行保持堆特性为o(lgn),因此o(n)+o(nlgn),总体时间时间复杂度为o(nlgn)

6.  产生堆积现象,即产生了冲突,它对存储效率、散列函数和装填因子均不会有影响,而平均查找长度会因为堆积现象而增大

7.

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 一些概念 数据结构就是研究数据的逻辑结构和物理结构以及它们之间相互关系,并对这种结构定义相应的运算,而且确保经过这...
    Winterfell_Z阅读 6,021评论 0 13
  • 0.目录 1.优先队列ADT 2.几种实现 3.二叉堆 4.d-堆 5.左式堆 6.斜堆 7.二项队列 8.斐波那...
    王侦阅读 3,197评论 1 2
  • 本文是对 Swift Algorithm Club 翻译的一篇文章。Swift Algorithm Club是 r...
    Andy_Ron阅读 945评论 0 5
  • 上周看了两部电影,其一是《无名之辈》,其二是《西红柿首富》。后来在给晶晶写信时还向他吐槽《无名之辈》不好看,《...
    谢同学啊阅读 422评论 0 0
  • 今天听同事讲,之前有个采购的员工,入职后注册了自己的公司,法人是丈母娘,总经理是老婆,该员工利用职务之便,把订单下...
    向着太阳的安妮阅读 117评论 0 0