python - 有理由地运行以下功能的复杂性

标签 python algorithm data-structures

我无法找到以下函数的运行复杂性,因为这里连接了 3 个东西 1:输入大小 2:i 值 3:s 值。 请帮助我找到推理的运行复杂性。

def function(n):
    i=s=1
    while s<n:
        i=i+1
        s=s+i
        print("*")
function(20)

最佳答案

这是O(sqrt(n)) 算法。

The loop runs i times such that `1+2+..i<=n.`[maximum i] 
or
i*(i+1)/2<=n or i^2/2<=n or i<=sqrt(2n) 
~O(sqrt(n))

关于python - 有理由地运行以下功能的复杂性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33308535/

相关文章:

php - 查找二叉树级别是否已完成的最佳且有效的方法应该是什么?

java - 任何快速简单的方法来散列小字节数组,以便最重要的位是最可变的?

使过亮(HDR)颜色变为白色的算法?

algorithm - 爬山和 A* 有什么区别?

python - 在 Bokeh HoverTool 中格式化 Pandas 日期时间

data-structures - 表示文件/文件夹结构的最佳方式

python - 使用位数组创建类似对象的列表

C#相当于Python的日志库

python - 使用 Python 执行 vBulletin-Forum 登录

python - 如何检查为什么要导入 python 模块?