链表删除的最小时间复杂度


嗨,朋友们,我知道链表中删除操作为 O(1) 的程序,但时间复杂度为 O(log n) 我该如何继续逻辑。 请帮我逻辑一下…

我尝试过的:

尝试使用堆搜索但无法实现…

解决方案1

解决方案2

O(1) 指的是性能成本与复杂度成线性比例。 减少这种情况的唯一方法是使用具有高效搜索能力的集合。 链表的搜索效率不高。 一个 无序映射[^] 来自标准模板库的示例是具有非常高效搜索的集合的示例。 A 哈希表[^] 是高性能集合的通用示例。 如果您必须自己实现哈希表,那么哈希表可能是一个很好的例子,因为它相当简单。

解决方案3

您无法获得更好的性能 O(1) 在任意链表上。
为了获得更好的时间复杂度,您必须使用有序列表(请原谅双关语)。 然后你可以执行二分搜索。

解决方案4

引用:

请帮我逻辑一下。

我担心没有这样的逻辑,或者它不再是链表了。
链表是一种数据结构,每种数据结构都有自己的优点和缺点,您根据数据的用途选择数据结构。

如果您将列表复制到另一个数据结构来执行堆搜索,那么构建该结构的成本通常会超过使用该结构的收益。

コメント

タイトルとURLをコピーしました