首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >大O符号作业--代码片段算法分析?

大O符号作业--代码片段算法分析?
EN

Stack Overflow用户
提问于 2008-10-19 18:52:22
回答 4查看 18.5K关注 0票数 27

作为家庭作业,我得到了以下8个代码片段来分析,并为运行时间给出了一个Big-Oh符号。有没有人能告诉我我是不是走对了?

代码语言:javascript
复制
//Fragment 1
for(int i = 0; i < n; i++)
    sum++;

我在考虑片段1的O(N)

代码语言:javascript
复制
//Fragment 2
for(int i = 0; i < n; i+=2)
    sum++;

O(N)也适用于片段2

代码语言:javascript
复制
//Fragment 3
for(int i = 0; i < n; i++)
    for( int j = 0; j < n; j++)
        sum++;

片段3的O(N^2)

代码语言:javascript
复制
//Fragment 4
for(int i = 0; i < n; i+=2)
    sum++;
for(int j = 0; j < n; j++)
    sum++;

O(N)表示片段4

代码语言:javascript
复制
//Fragment 5
for(int i = 0; i < n; i++)
    for( int j = 0; j < n * n; j++)
        sum++;

片段5的O(N^2),但n*n有点让我迷惑,所以我不太确定

代码语言:javascript
复制
//Fragment 6
for(int i = 0; i < n; i++)
    for( int j = 0; j < i; j++)
        sum++;

对于片段6也是O(N^2)

代码语言:javascript
复制
//Fragment 7
for(int i = 0; i < n; i++)
    for( int j = 0; j < n * n; j++)
        for(int k = 0; k < j; k++)
            sum++;

O(N^3)表示片段7,但n*n再次将我抛在脑后

代码语言:javascript
复制
//Fragment 8
for(int i = 1; i < n; i = i * 2)
    sum++;

片段8的O(N)

EN

回答 4

Stack Overflow用户

发布于 2008-10-20 18:18:09

片段7是O(n^5),而不是当前接受的注释声称的O(n^4)。否则,它是正确的。

票数 7
EN

Stack Overflow用户

发布于 2008-10-19 19:23:07

对于情况8,试着写出N的一些值的迭代次数,看看模式是什么样子的……它不是O(N)

票数 2
EN

Stack Overflow用户

发布于 2008-10-19 18:56:40

你似乎走在正确的轨道上。关于N*N,你认为它会有什么影响?它是N的另一个因子,所以它可能是一个更高的阶数。

只是一个警告,我看到了另一个像这样的帖子,它被极大地否决了。注意。Here就是那篇文章。

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

https://stackoverflow.com/questions/216796

复制
相关文章

相似问题

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