【发布时间】:2018-05-22 10:32:49
【问题描述】:
在 c# 中我们有 LinkedList 库,它有一些有用的方法。其中之一是 AddAfter/AddBefore 方法。我认为在排序的 LinkedList 中,如果它使用二进制搜索,它是 O(log(n)) 复杂度;
我说得对还是你能解释得更准确
【问题讨论】:
-
二分查找只能用于已排序的集合,插入的链表复杂度(除了先插入)是O(n)
-
docs 告诉你复杂度是 O(1)。
-
是的,在集合中插入它是 O(1),但是如果你想在特定值之后插入,那么复杂度是多少?例如:SortedLinkedList: [2, 5, 7, 11, 14],我要插入8,基本上在11之后
-
@Lee 但未排序
-
@Boo 为什么是 O(n) 你能解释一下吗?如果我进行二分搜索
标签: c# algorithm sorting linked-list binary-search-tree