堆:
用数组实现的一个完全二叉树,没有父指针和子指针,使用堆属性来排序。
堆属性:
最大堆:父节点的值大于子节点
最小堆:父节点的值小于子节点
堆必须把每一层都占满了才会去启用下一层
父子节点关系:
parent(i) = floor((i - 1)/2) left(i) = 2i + 1 right(i) = 2i + 2
例如:
[10,7,2,5,1]
用处:
构建优先队列
查找最大值或最小值
堆排序
优点:
相比于普通树,占用空间更小
二叉搜索树需要满足平衡才能达到对数的处理速度,而堆不需要整棵树都是有序的。
标签:一层,整棵树,指针,2i,数据结构,节点,属性 来源: https://www.cnblogs.com/iscanghai/p/15095820.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。