Big-O中的运行时间

时间:2017-09-21 12:26:40

标签: algorithm big-o

我在完全理解Big-O表示法以及嵌套循环如何影响运行时方面遇到了一些麻烦。我知道嵌套循环的时间复杂度等于执行最内层语句的次数,但我只是想检查一下我的理解。

1

count=1
for i=1 to N
    for j=1 to N
        for k=1 to N
            count+=1

由于有2个嵌套循环,它将是 O(N 3 ,对吗?

2

count=1
for i=1 to N^2
    for j=1 to N
        count+=1

外部循环迭代 N 2 ,内部循环运行 N 次,这使得 O(N 3 < / sup>),对吧?

3

count=1
for (i=0;i<N;++i)
    for (j=0;j<i*i;++j)
        for (k=0;k<j;++k)
            ++count

这是 O(N),因为 N 仅在第一个for循环中被调用?

1 个答案:

答案 0 :(得分:-2)

Big O -notation描述了算法或程序在输入量方面如何缩放性能(运行时间,内存要求等)。

例如:

  • O(1)表示无论数据量多少都需要时间
  • O(N)线性缩放:输入五次,完成时间长五次
  • O(N ^ 2)以二次方式缩放:例如十倍的输入将花费一百倍的时间来完成

你的第三个例子是 O(N ^ 4),因为这是N最内部迭代的总数如何缩放。

对于这些简单的情况,您可以计算最里面的迭代次数,但肯定会有更复杂的算法。