排序的单链表和排序的双链表的运行时复杂性

时间:2019-03-19 16:49:30

标签: linked-list runtime big-o singly-linked-list doubly-linked-list

在单双链表中插入和搜索的平均和最差运行时间为O(1)和O(n)。在最佳情况下,运行时复杂性是否相同?

换句话说,在最佳情况下,一个单双链表的插入时间是否为O(1),搜索时间为O(n)?

1 个答案:

答案 0 :(得分:1)

这样想吧:

在最佳情况下,当您进行搜索时,您要看的第一个元素就是所需的元素,因此就完成了(实际上,很多搜索算法就是这种情况)。这与链接列表的长度无关,即,无论链接列表有多长,它花费的时间都是相同的,因此它是O(1)

在最佳情况下,在特定元素之后的插入是相同的:您在特定元素之后插入,这又与列表的长度无关,因此为O(1)

我应该注意,最好的情况下运行时的复杂性不是很有趣,因为在最好的情况下,通常情况下一切都会很快。人们通常只谈论平均用例运行时,因为接近平均用例会经常发生,而最糟糕的是,因为您想知道算法有时是否真的做得很差。