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

问题描述 投票:0回答:1

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

换句话说,在最好的情况下,排序的单一和双向链表是否有O(1)时间插入和O(n)时间搜索?

linked-list runtime big-o singly-linked-list doubly-linked-list
1个回答
1
投票

想想这样:

在最好的情况下,当你搜索时,你看到的第一个元素就是你想要的元素,所以你已经完成了(实际上是很多搜索算法的情况)。这与链表的长度无关,即无论链表有多长,它都需要相同的时间,因此它是O(1)

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

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

© www.soinside.com 2019 - 2024. All rights reserved.