如果我在双向链表中同时使用头指针和尾指针来搜索元素,我的时间复杂度会更小吗?

Will I have a smaller time complexity if I use both the head and tail pointers in a doubly linked list to search an element?

所以如果我想搜索一个元素,使用双向链表,如果我从两边搜索(列表的开头和结尾),我会得到一个更小的时间复杂度,比如 O(logN)列表的)同时还是我仍然会得到线性时间?

如果您遍历双向链表中的链接,您仍然会获得线性时间复杂度。二分搜索的对数时间复杂度取决于排序列表中数组元素的基于索引的随机访问。考虑一个双向链表,其中 n/2 个常量 c 的实例后跟 n/2 个 2c 的实例。要确定 c < b < 2c 不在此类列表中的数字 b,无论您从哪一端搜索,您都必须检查 n/2 条目。即使按排序顺序排列条目也无济于事,因为要检查中间部分,您需要遍历列表的一半。