我正在尝试查找此函数的运行时:
myst_fun_1([]) -> 0;
myst_fun_1(ListUsed = [_ | Tail]) -> length(ListUsed) + myst_fun_1(Tail).
由于此长度函数为O(N)
,并且myst_fun_1
被调用了N
次,运行时间是否为O(N^2)
?我想知道我的理解是否正确。
答案 0 :(得分:1)
myst_fun_1([]) -> 0;
myst_fun_1(ListUsed) ->
myst_fun_1(length(ListUsed), ListUsed).
myst_fun_1(Length, [_ | Tail]) ->
Length + myst_fun_1(Length-1, Tail).
O(N)
答案 1 :(得分:-2)
length/1
是一个BIF,运行速度比myst_fun_1/1
快得多,因此它比O(N ^ 2)更有可能是O(N)。