【发布时间】:2018-04-08 10:06:28
【问题描述】:
如果我在列表中间搜索并且它按升序排序
10 20 30 40 50
然后想象我搜索“20”然后选择 30(在中间)
10 20 30 40 50
然后我可以在双向链表中向左移动所以向左移动(选择 20)
10 20 30 40 50
会不会是 O(log n) 因为搜索时间减半?
【问题讨论】:
-
O(n/2) = O(n) .
-
如何在不遍历一半列表的情况下访问中间点?例如,如果您尝试访问第 250 个元素,那么会发生什么情况?你的技术在这里有问题
-
@JillAndMe:不,你理解 big-O notation 就好了,因为你知道二分搜索有一定的复杂性。您唯一缺少的是将该符号应用于此特定情况:-)
标签: algorithm doubly-linked-list