栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

从集合构造PriorityQueue的时间复杂度是多少?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

从集合构造PriorityQueue的时间复杂度是多少?

PriorityQueue
从集合(甚至是未排序的集合)初始化a的时间复杂度为O(n)。在内部,它使用一个过程
siftDown()
来就地“堆化”数组。(这在文献中也称为下推式)。

这是违反直觉的。似乎将元素插入到堆中是O(log n),所以插入n个元素会导致O(n log
n)复杂性。如果您一次插入一个元素,则为true。(在内部,使用插入单个元素可以完成此操作

siftUp()
。)

堆放单个元素肯定是O(log n),但是“窍门”

siftDown()
在于,随着每个元素的处理,必须筛选通过的元素数量不断减少。因此,总复杂度不是n个元素乘以log(n);它是筛选剩余元素的成本降低的n项之和。

请参阅此答案,还请参阅本文,该文章适用于数学。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/370212.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号