gpt4 book ai didi

algorithm - 这个函数的正确时间复杂度是多少

转载 作者:行者123 更新时间:2023-12-04 08:48:34 26 4
gpt4 key购买 nike

我是数据结构和算法的初学者。我在一本书(Data Structures And Algorithms Made Easy In Java)中遇到过这个问题,书中给出的复杂度为 O(√n)。根据我的理解,随着输入的增长,函数看起来大于 O(√n) 但小于 O(n)。

public void function (int n) {
int i=1, s=1;
// s is increasing not at rate 1 but i
while( s <= n) {
i++;
s= s+i;
System.out.println(“*");
}
}
你能解释一下这个函数的正确时间复杂度是多少吗?

最佳答案

书是对的。每次,one添加到 ii添加到 s .因此,s将是 11 + 2 , 1 + 2‌ + 3 , ..., 1 + 2 + 3 + ... + k .现在,k是运行循环次数,复杂度为Theta(k)O(k) .现在找到k的值,我们需要解决1 + 2 + ... + k = n .如 1 + 2 + ... + k = k(k+1)/2 ,我们将有 k*(k+1)/2 = n .因此,k = Theta(sqrt(n)) (只需解方程),这意味着算法在O(sqrt(n)) .

关于algorithm - 这个函数的正确时间复杂度是多少,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64185781/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com