首页 > 编程语言 >算法题目的时间复杂度和空间复杂度

算法题目的时间复杂度和空间复杂度

时间:2024-02-28 23:59:45浏览次数:23  
标签:题目 cout int 复杂度 ++ 算法 例题 void

一、如何判断时间复杂度?

  利用--大O记法:

  1、只保留最高次项;

  2、最高次项的系数默认是1;

  3、常数次一律记为O(1)。

例题1:

void test1()
{
    int n, m;
    cin >> n >> m ;
    int sum = 0;
    for(int i = 0; i < n; i ++)
    {    
        for(int i = 0; i < m; i ++)
        {
            sum ++;
        } 
    }
}

  这时候其实只看两个for循环,其他的不管,并且知道内层for循环循环了m次,外层for循环循环了n次,可以知道它的时间复杂度大约是 O(n*m)。

 

例题2:

void test2()
{
    for (int i = 0; i < 10000; i ++) 
    {
        cout << "aa" << endl;
    }
}

  根据前面的大O记法,常数次默认是O(1)。

 

例题3:

void test3()
{
    int n, m;
    cin >> n >> m;
    for(int i = 0; i < n; i ++)
    {
        cout << 1 << endl ;
    }
    for(int i = o; i < m; i ++)
    {
        cout << 2 << endl ;
    }
}

  这里不是嵌套关系,所以是O(n+m)。

 

例题4:

void test4()
{
    int n;
    cin >> n;
    int cnt = 0;
    int l = 1;
    while(l < n)
    {
        cnt ++;
        l *= 2;
    }
    cout << cnt << endl;
}

   因为这里 L 是乘了2,会比预期更快达到 L > n,按照数学表达式-> 2^L = n  --> L = logn,所以时间复杂度为O(logn)。

 

二、空间限制(题目内存要求不能超过多少mb)

   数组基本上最大能开到10的7次方大小。

标签:题目,cout,int,复杂度,++,算法,例题,void
From: https://www.cnblogs.com/toutiegongzhu/p/18037678

相关文章

  • 代码随想录算法训练营第六天|242. 有效的字母异位词
    这个题目还是比较简单的,知道是查表的思路之后,很快就写出来了:classSolution:defisAnagram(self,s:str,t:str)->bool:iflen(s)!=len(t):returnFalsealphabet=[]dict_s={}dict_t={}foriinran......
  • 代码随想录算法训练营day08 | leetcode 344. 反转字符串、541. 反转字符串 II、54. 替
    目录题目链接:344.反转字符串-简单题目链接:541.反转字符串II-简单题目链接:[54.替换数字](题目页面(kamacoder.com))题目链接:151.反转字符串中的单词-中等题目链接:[55.右旋字符串](题目页面(kamacoder.com))题目链接:344.反转字符串-简单题目描述:编写一个函数,其作用是将......
  • 数据结构与算法
    绪论数据结构的基本概念数据:是信息的载体,分整数型与非整数型数据数据项:构成数据元素的最小不可分割单位,如学生的成绩数据元素:数据的基本单位,作为一个整体存储,如每个学生的信息数据类型:具有相同性质的计算机数据的集合,以及在这个集合上的一系列操作,比如in......
  • 2024牛客寒假算法基础集训营6 题解 ( A,B,C,D,E,I)
    2024牛客寒假算法基础集训营6题解(A,B,C,D,E,I)A 宇宙的终结题意找到\([l,r]\)区间中有多少数恰好等于三个不同素数的乘积思路数据范围很小,可以考虑暴力,遍历\([l,r]\)区间内每个数,拿每个小于当前数的素数一直往下除,判断是否存在能被恰好3个素数整除的情况代码/********......
  • (8)宽带信号的空间谱估计算法
    空间谱估计理论与算法(8)宽带信号的空间谱估计1引言目前,对宽带信号处理算法的研究主要分为两类:1基于不相干信号的处理方法(ISM)。这类算法处理的主要思想是将宽带数据分解到不重叠频带上的窄带数据,然后对每个频带进行窄带信号子空间处理,从而获得初始角度的估计;再通过对这些初始估......
  • 加密算法(三级等保)
    常见的加密算法对称加密算法DES、3DES、DESX、Blowfish、IDEA、RC4、RC5、RC6和AES非对称加密算法RSA、ECC(移动设备用)、Diffie-Hellman、ElGamal、DSA(数字签名用)Hash算法MD2、MD4、MD5、HAVAL、SHA、SHA-1、HMAC、HMAC-MD5、HMAC-SHA1块加密概念块加密,英文BlockCyper......
  • PID 控制算法
    PID控制算法PID是一种用于调节系统的反馈控制方法,简单有效广泛用于数据控制,其名称代表三个主要的控制参数:比例(Proportional)、积分(Integral)、和微分(Derivative)。例如往水缸加一米深的水,我加水的速度应当由以下三点决定:当前水深距离目标的差距。差距越大应当加水越快(P)如果水......
  • 分块相关题目
    题单。UPD:题单里的题\(n=m\)。数列分块入门一看到区间修改\(+\)单点查询,考虑差分。考虑分块维护差分数组。对于修改操作,就对\(l\)位置\(+k\),\(r+1\)位置\(-k\);对于查询操作,查询\([1,x]\)的和即可。时间复杂度\(O(m\sqrt{n})\),可以通过。代码。数列分块入门二如......
  • L-BFGS-B(Limited-memory Broyden–Fletcher–Goldfarb–Shanno )算法理解 —— 内存
    本文主要讲下个人对数值优化算法中几种常见算法的理解。什么是优化算法?给出函数f(X),现在要求minf(X)时的X值,这就是最优化问题。1.共轭梯度法方程:A*x=b,A矩阵为对称正定矩阵,b为向量,目标为求解出向量x。个人认为共轭梯度法并不能被当做是一个真正的优化算法,因为共轭梯度......
  • day44 动态规划part6 代码随想录算法训练营 518. 零钱兑换 II
    题目:518.零钱兑换II我的感悟:递推公式,我没写错。是初始化写错了。这种求多少种的,要考虑1种,是空集合选1中。而那些考虑能背最大的价值,要从0初始化,0的含义值无价值。 理解难点:递推公式,是累加dp[j]+=dp[j-conins[i]]初始化的含义 dp[0]=1听课笔记: 代码示例:cl......