首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >java中并发循环的时间复杂度

java中并发循环的时间复杂度
EN

Stack Overflow用户
提问于 2020-07-25 18:51:12
回答 1查看 143关注 0票数 0

虽然我只使用了一个循环,但我不认为代码的时间复杂度是O(n)。有人能解释一下下面代码的时间复杂性吗?

代码语言:javascript
复制
public class PatternPyramid {

    public static void main(String[] args) {

        int rows = 15;
        int i = 0;
        int j = 0;
        int k = rows - 1;

        while (i < rows) {

            if (j < k) {
                System.out.print(" ");
                j++;
            } else if (j < rows) {
                j++;
                System.out.print("* ");
            } else {
                j = 0;
                i++;
                k--;
                System.out.println();
            }
        }
    }
}
EN

回答 1

Stack Overflow用户

发布于 2020-07-25 19:23:25

代码语言:javascript
复制
for (int i=0; i<rows; i++) {
    for(int j=i; j<rows;j++)
        System.out.print(" ");
    
    for(int k=0; k<=i; k++)
        System.out.print("* ");
                
    System.out.println();
}

您的代码可以转换为这样的for循环,因为可以看到外部循环运行O(行)次,空格的循环运行行--每次迭代运行i次,而星号循环运行I次。组合它们将导致内部循环运行行数次。

因此,总时间复杂度为O(行^2)。

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

https://stackoverflow.com/questions/63092263

复制
相关文章

相似问题

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