[ad_1]
嗨,朋友们,我知道链表中删除操作为 O(1) 的程序,但时间复杂度为 O(log n) 我该如何继续逻辑。 请帮我逻辑一下…
我尝试过的:
尝试使用堆搜索但无法实现…
解决方案1
看 大 O 表示法 – 维基百科[^]。
解决方案2
O(1) 指的是性能成本与复杂度成线性比例。 减少这种情况的唯一方法是使用具有高效搜索能力的集合。 链表的搜索效率不高。 一个 无序映射[^] 来自标准模板库的示例是具有非常高效搜索的集合的示例。 A 哈希表[^] 是高性能集合的通用示例。 如果您必须自己实现哈希表,那么哈希表可能是一个很好的例子,因为它相当简单。
解决方案3
您无法获得更好的性能 O(1)
在任意链表上。
为了获得更好的时间复杂度,您必须使用有序列表(请原谅双关语)。 然后你可以执行二分搜索。
解决方案4
引用:请帮我逻辑一下。
我担心没有这样的逻辑,或者它不再是链表了。
链表是一种数据结构,每种数据结构都有自己的优点和缺点,您根据数据的用途选择数据结构。
如果您将列表复制到另一个数据结构来执行堆搜索,那么构建该结构的成本通常会超过使用该结构的收益。
[ad_2]
コメント