首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >递归函数的运行时

递归函数的运行时
EN

Stack Overflow用户
提问于 2018-09-12 13:15:32
回答 2查看 317关注 0票数 2

我正在尝试查找此函数的运行时:

代码语言:javascript
复制
myst_fun_1([]) -> 0;
myst_fun_1(ListUsed = [_ | Tail]) -> length(ListUsed) + myst_fun_1(Tail).

由于这个长度函数是O(N),而myst_fun_1被称为N次,那么运行时会是O(N^2)吗?我想知道我的理解是否正确。

EN

回答 2

Stack Overflow用户

发布于 2018-09-16 11:14:56

代码语言:javascript
复制
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
EN

Stack Overflow用户

发布于 2018-09-12 19:47:15

length/1是一个BIF,它的运行速度比myst_fun_1/1快得多,所以它更有可能是O(N)而不是O(N^2)。

票数 -2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52287897

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档