批量建堆
1,逻辑:局部建立堆---》整体建立堆
2,其实就是一个调整范围的确定 + 考虑当前结点的身份(作为子结点或父结点)而已:
上滤—----当前结点作为子节点,考虑它作为子结点在当前的位置是否合适。
下滤---当前结点作为父结点,考虑它作为父结点在当前位置是否合适。
❀ 上滤建立堆-----逻辑就是添加时的上滤操作-是添加到数组的最后一个位置,然后不断地往上比(比较的终点是根),当前结点与它的父结点比较【直到找到合适位置】
❀ 下滤建立堆----逻辑就是符合删除操作~从第一个非叶子结点开始(比较的终点是根),当前结点不断地与它的最大子结点比较【直到找到合适位置】
■ 最大堆----批量建堆-效率对比:上滤与下滤比较----同线比较
例如:拿1号线作比较,可以看到上滤与下滤比较:
上滤可能移动的结点比较多(往上跑的结点数量比较多),
下滤可能移动的结点比较少(往下跑的结点数量比较少)
标签:结点,批量,下滤,建堆,----,当前,上滤,比较
来源: https://www.cnblogs.com/shan333/p/15514989.html
本站声明:
1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。