c++ - 时间复杂度 - 大 O - 显示不在文件中的间隔中的数字

标签 c++ performance time-complexity big-o

我想知道这段代码的时间复杂度(big-O):

(它读取一个文本文件如下: 第一行是一个数字 n,第二行是一个升序数字列表 - 最大值。 n 个数字 - 它显示了从 1 到 n 的所有数字,这些数字不在文本文件中)

#include <iostream>
#include <fstream>
using namespace std;

int interval(int a, int b, int &ok) { 
    for(int i=1; i<(b-a); i++) {
      cout << a+i << " "; ok=1;
    }
}

int main()
{
    int n=0, ok=0, a=0, b=0; 
    ifstream fisier("numere.in");
    fisier >> n;
    while(fisier >> b) { b
        interval(a,b,ok); 
        a = b;
    } interval(b,n+1,ok);
    if(ok == 0) cout << "Nu exista";
    return 0;
}

我认为它是 n*logn 但我不确定。谢谢

最佳答案

如果数字是 a1,a2,a3...a(n) 那么,

首先它进行 a1 次,然后在下一次迭代中进行 a2-a1 次,在下一次迭代中进行 a3-a2 次 .... a(n) - a(n-1) 次。将其相加得到 a(n) 次,即 O(n)。

关于c++ - 时间复杂度 - 大 O - 显示不在文件中的间隔中的数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38293377/

相关文章:

c++ - 二维指针数组的类型定义

javascript - 为什么浏览器并不总是在执行 JavaScript 之前完成对前面 HTML 的渲染?

algorithm - O(3^n) 仍然写成 O(2^n) 吗?

c - 基本时间复杂度?

c++ - 让智能指针按特定顺序删除SDL组件

c++ - 在 DLL 注入(inject)中访问内存会导致内存访问冲突

c# - 系统启动/重新启动时 WMI 调用花费太多时间

search - 二分搜索 - 最坏/平均情况

c++ - 从初始化列表初始化,但没有 {{{{{{{{ ... }}}}}}}}?

sql - 打印报表和性能