首页 > 其他分享 >时间复杂度和空间复杂度

时间复杂度和空间复杂度

时间:2023-07-23 09:03:07浏览次数:21  
标签:return 递归 int 复杂度 时间 空间

通常关注时间复杂度,

对于常数阶和循环次数不变的时空复杂度,就不过多介绍了。

递归的时间复杂度:

对于只调用一次自身且递归次数程常数阶减少的递归,比如:

void fun(int n) {
  if(n == 0) {
   return;
}
n--;
return fun(n); }

它的时间复杂度是O(n),很明显它需要的栈的高度是n,空间复杂度n,因为每个栈都需要存变量。

类推就能得到斐波那契的时间复杂度是O(2^n),空间复杂度同样O(2^n)。

所以实际项目几乎不允许使用递归,栈的空间本身就不大,递归次数受参数影响呈指数增长,极易栈溢出。

循环复杂度

for(int i = 0; i < n; i ++) {
   i *= 2;  
}

时间复杂度O(lgn)

 

标签:return,递归,int,复杂度,时间,空间
From: https://www.cnblogs.com/benjerry/p/17574644.html

相关文章

  • mysql 2个时间差
    如何计算MySQL中两个时间的差值作为一名经验丰富的开发者,我将会指导你如何在MySQL中计算两个时间之间的差值。下面是整个流程的步骤表格:步骤说明1连接到MySQL数据库2准备数据表3插入数据4查询时间差以下是每个步骤具体需要做的事情,以及每一条代码和其......
  • c盘空间不足如何清理
    c盘空间越来越不足,但是自己从未将软件安装到c盘,最后发现是因为经常电脑休眠产生的文件占用了太多的空间。解决方法:利用管理员身份打开cmd输入如下命令:powercfg.exe-hoff,即可成功删除休眠文件 ......
  • 2023-07-22:一共有n个项目,每个项目都有两个信息, projects[i] = {a, b}, 表示i号项目做完
    2023-07-22:一共有n个项目,每个项目都有两个信息,projects[i]={a,b},表示i号项目做完要a天,但是当你投入b个资源,它就会缩短1天的时间,你一共有k个资源,你的目标是完成所有的项目,但是希望总天数尽可能缩短。在所有项目同时开工的情况下,返回尽可能少的天数。1<=n<=10^5,1<=k......
  • mysql设置时间字段类型
    MySQL设置时间字段类型在MySQL数据库中,时间字段是一种用于存储日期和时间信息的特殊类型。MySQL提供了多种时间字段类型,可以根据不同的需求选择合适的类型。本文将介绍MySQL中常用的时间字段类型,并提供代码示例来演示如何设置时间字段类型。1.DATEDATE类型用于存储日期信息,格式......
  • mysql设置datetime为当前时间
    如何设置MySQL的datetime为当前时间简介在MySQL中,可以使用特定的函数和语句来设置datetime列为当前时间。本文将向你展示如何实现这一目标。步骤步骤描述1连接到MySQL数据库2选择要更新的表3更新datetime列为当前时间具体步骤及代码步骤1:连接到MySQL......
  • JVM运行时数据区之堆空间
    JVM运行时数据区之堆空间1.核心概述一个JVM实例只存在一个堆内存,堆也是Java内存管理的核心区域。堆区在JVM启动的时候即被创建,其空间大小也就确定了,是JVM管理的最大一块内存空间。《Java虚拟机规范》中对Java堆的描述是:所有的对象实例以及数组都应当在运行时分配在堆上。(The......
  • redis自动刷新过期时间
    Redis自动刷新过期时间Redis是一个开源的内存数据库,它提供了一些强大的功能,如缓存、消息队列和键值存储等。在缓存应用中,我们经常会遇到一个问题,就是如何处理缓存的过期时间。当缓存过期后,我们需要从数据库中重新加载数据,并将其重新设置到Redis中。为了解决这个问题,我们可以使用Re......
  • redis重置过期时间
    Redis重置过期时间Redis是一款开源的高性能键值存储系统,常用于缓存、消息队列等场景。在Redis中,可以为每个键设置过期时间,过期时间到达后,Redis会自动删除该键。但有时候,我们需要动态地重置键的过期时间,以延长其存活时间。本文将介绍如何在Redis中重置键的过期时间,并提供相应的代码......
  • redis设置有效时间半小时
    实现Redis设置有效时间半小时的步骤作为一名经验丰富的开发者,我很乐意教会你如何在Redis中设置有效时间为半小时的方法。下面是实现该需求的步骤。步骤操作步骤一连接Redis服务器步骤二设置键值对步骤三设置键的有效时间为半小时接下来,我将详细介绍每一步......
  • 在python中utc时间毫秒格式化保留3位
    在Python中UTC时间毫秒格式化保留3位在计算机编程中,时间的处理是非常重要的。在Python中,有时我们需要将时间格式化为特定的字符串形式,以便于存储、传输或显示。本文将介绍如何在Python中将UTC时间的毫秒部分格式化并保留3位。UTC时间和时区在介绍如何格式化UTC时间之前,我们先了......