我为单链表编写了一些伪代码。该函数应该通过前一个元素的键的值增加键(k)的每次出现,唯一的例外是第一个元素(未更改)。
List-Increase-Key(L,k)
x = L.head
k = L.head
while (x.key != k and x != NIL)
prex = x.key
x = x.next
if x.key == k
x.key = x.key + prex
我认为运行时间是O(n),因为它遍历整个列表一次。我想知道我的时间复杂度估计是否准确,或者这是否比这更有效/更低效。或者,如果你认为我的想法是垃圾,会崩溃和烧毁可怕。谢谢您的光临。
答案 0 :(得分:0)
运行时间显然是O(n),因为完成了一次遍历。
但我在你的代码中发现了一些差异。
while (x.key != k and x != NIL)
在上述声明中,NIL检查应在条件“x.key!= k”之前。