首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏Zeusro

    时间序列复杂度

    传统时间空间复杂度 时间复杂度(Time Complexity)描述的是:算法执行所需的时间与输入规模之间的关系。 时间序列复杂度 时间序列复杂度(Time Series Complexity)描述的是:在满足时间复杂度以及空间复杂度的前置性论述下,算法执行的实际时间以及内存资源的利用效率。 时间序列复杂度是一个二维图表。X轴是t,Y轴是(used - buff/cache) / total 时间序列复杂度需要对程序进行可观测性分析。个人比较喜欢指数衰减型。 具体例子 时间序列复杂度的这一概念,破除了传统时间空间算法复杂度的浅层优劣问题。说点人话,你可以用一个看起来很傻的程序去模拟AI,只要这个“AI”能骗到人(通过图灵测试)。 因此,通过蜉蝣交配这个非常简单的例子,就能解答“时间序列复杂度”这一概念。 拓展 纵轴可以换成单位能耗指标,用来建设节能型智慧建筑。 与其说纵轴是内存利用率,不如说纵轴表示一种资源的利用效率。

    37520编辑于 2025-09-08
  • 来自专栏AI粉嫩特攻队

    用python做时间序列预测七:时间序列复杂度量化

    本文介绍一种方法,帮助我们了解一个时间序列是否可以预测,或者说了解可预测能力有多强。 而实际上A总是小于等于B的,所以A/B越接近1,预测难度越小,直觉上理解,应该就是波形前后部分之间的变化不大,那么整个时间序列的波动相对来说会比较纯(这也是熵的含义,熵越小,信息越纯,熵越大,信息越混乱 ),或者说会具有一定的规律,而如果A和B相差很大,则时间序列波动不纯,或者说几乎没有规律可言。 python实现 def SampEn(U, m, r): """ 用于量化时间序列的可预测性 :param U: 时间序列 :param m: 模板向量维数 : param r: 距离容忍度,一般取0.1~0.25倍的时间序列标准差,也可以理解为相似度的度量阈值 :return: 返回一个-np.log(A/B),该值越小预测难度越小 """

    2.4K10发布于 2020-06-11
  • 来自专栏IT知识进阶学习

    So easy 10分钟搞懂时间复杂度和空间复杂度

    原因就在于算法的复杂度,**算法2的复杂度为O(n²),虽然使用了提升了100倍运算速率的CPU去执行它,但是相对于运行让它运行复杂度的O(n)的算法,它提升的速率实际上仅为10倍。 一、算法:   并不是什么高深的词汇,**可以理解为它就是解决特定问题的办法,在计算机中表现为有限的指令序列,同一个问题有多种解决办法,所以某一个问题的算法并不是唯一的**,就好像我们想去旅游,可以乘坐高铁动车 = 10,则替换成大O阶方法的话则为:O(1),无论这个常数为10,还是100,还是1000都使用1替换,因为执行函数和问题规模n的大小无关,它是执行时间恒定的,像时间复杂度为O(1)的又被称作常数阶。 对算法的时间量度,存在两种方式。 一种是计算所有情况的平均值,这种时间复杂度的计算方法称为平均时间复杂度。 另一种情况则为计算最坏情况下的时间复杂度,这种也称为最坏时间复杂度,**一般没有特殊说明的情况下,指的都是最坏时间复杂度

    47720编辑于 2022-09-13
  • 来自专栏前端学习文档

    时间复杂度

    什么是时间复杂度? 定性描述该算法的运行时间,一个函数、用大 O 表示,例如 O (1)、 O (n)、O (logN) ... (2 ^ n) 上面从上至下依次的时间复杂度越来越大,执行的效率越来越低。 javascript for (let i = 0; i < n; i++) { console.log(i) } O(1) + O(n) = O(n) 当两个时间复杂度的代码在一块时,以时间复杂度较大的为准 ,得到的结果就是真实的时间复杂度。 当时间复杂度进行相加时,却可以忽略不计。

    50400编辑于 2023-06-08
  • 来自专栏从码农的全世界路过

    时间复杂度

    今天用10分钟的时间,介绍下算法中最基本的一个概念,时间复杂度. 简单来说,就是一个算法,后者一个方法或者函数,执行时需要多长时间. 举个例子来说 int i = 100 * 10; 这个赋值语句,只执行一次,那他的时间复杂度就是O(1) 例2: public void fun1(int n) { int CPU执行每条语句的真正时间忽略为1, 所用时间就是T(n)=1 + N + N = 2 * N + 1 根据时间复杂度的基本规则:去掉常数,保留最高阶 最后结果为T(N)=O(2 * N + 1) = O(N) 也因为上述规则,时间复杂度,也称为渐进的时间复杂度. 阶 6 O(N^3) 立方阶 7 O(2^N) 指数阶 以上,简单的介绍了时间复杂度的相关概念和算法.

    67700编辑于 2022-06-20
  • 来自专栏Python碎片公众号的专栏

    时间复杂度

    顺序结构的代码,时间复杂度按加法进行计算,时间复杂度为每行顺序执行的代码的时间复杂度相加。 3. 循环结构的代码,时间复杂度按乘法进行计算,时间复杂度为每一层循环结构的时间复杂度相乘。 end=" ") print("j={}".format(j), end=" ") print("i*j={}".format(i*j)) cycle(10 在没有特殊说明时,程序的时间复杂度都是指最坏时间复杂度。 在上面的分支结构中,计算时间复杂度按最大的分支计算,这就是一种按最坏时间复杂度计算的情况。 i in data_list: if i == m: return i else: return -1 print(search(10 若程序执行次数为问题规模n的二次函数,如T(n)=5n^2+8n+10和T(n)=8n^2+10n+10,则时间复杂度都为O(n^2)。以此类推。

    1.1K20发布于 2021-02-26
  • 来自专栏Android 进阶

    时间复杂度

    算法时间复杂度定义 时间复杂度的定义是:如果一个问题的规模是n,解决这一问题所需算法所需要的时间是n的一个函数T(n),则T(n)称为这一算法的时间复杂度。 算法中基本操作的执行次数。 常见的算法时间复杂度 时间复杂度与空间复杂度区别 时间复杂度:全称渐进式时间复杂度,表示算法的执行时间与数据规模的增长关系; 空间复杂度:全称渐进式空间复杂度,表示算法的存储空间与数据规模增长关系; 其他时间复杂度 最好情况时间复杂度:指的是在最理想状态下,执行这段代码所需的时间; 最坏情况时间复杂度:指的是在最糟糕情况下,执行这段代码所需的时间; 要查找的变量 x 可能出现在数组的任意位置。 平均时间复杂度:全称叫加权平均时间复杂度或者期望时间复杂度。 而且,在能够应用均摊时间复杂度分析的场合,一般均摊时间复杂度就等于最好情况时间复杂度。均摊时间复杂度就是一种特殊的平均时间复杂度

    1K20发布于 2019-12-26
  • 来自专栏沉默王二

    时间复杂度

    “二哥,为什么要讲时间复杂度呀?”三妹问。 “因为接下来要用到啊。 “因此,我们需要这种不依赖于具体测试环境和测试数据就能粗略地估算出执行效率的方法,时间复杂度就是其中的一种,还有一种是空间复杂度。”我继续补充道。 对于上面那段代码 sum() 来说,影响时间复杂度的主要是第 2 行代码,其余的,像系数 2、常数 2 都是可以忽略不计的,我们只关心影响最大的那个,所以时间复杂度就表示为 O(n)。 常见的时间复杂度有这么 3 个: 1)O(1) 代码的执行时间,和数据规模 n 没有多大关系。 2)O(n) 时间复杂度和数据规模 n 是线性关系。换句话说,数据规模增大 K 倍,代码执行的时间就大致增加 K 倍。 3)O(logn) 时间复杂度和数据规模 n 是对数关系。

    70450发布于 2021-09-03
  • 来自专栏张家辉的树屋

    时间复杂度

    为了能在划水的时候找点事做 准备刷下 leetcode 重温一下时间复杂度的原理 时间复杂度 运行一次的基础代码要执行一次运算 const twice = (n)=>{ console.log( 四个遍历的法则 1、对于一个循环,假设循环体的时间复杂度为 O(n),循环次数为 m,则这个 循环的时间复杂度为 O(n×m)。 } } } 复制代码 此时时间复杂度为 O(n × n × 1),即 O(n^2)。 3、对于顺序执行的语句或者算法,总的时间复杂度等于其中最大的时间复杂度。 } } 复制代码 此时时间复杂度为 max(O(n^2), O(n)),即 O(n^2)。 4、对于条件判断语句,总的时间复杂度等于其中 时间复杂度最大的路径 的时间复杂度。 如果大家感兴趣,可以试下分别用 1,10,100 的输入大小来测试下算法的运行时间,相信大家会感受到时间复杂度的无穷魅力。

    75021发布于 2021-02-02
  • 来自专栏Howl同学的学习笔记

    时间复杂度

    在了解时间复杂度之前,先了解一下原操作和时间频度 ---- 一.原操作 原操作是指固有的数据类型的操作,可以理解为基本运算,下面的代码块中 3,6,7,9 都是原操作 例1 1. void foo (int printf("\n"); 10.} +) //循环n+10次 { printf("%d",i+j); //即深层原操作次数为n^2+10n } } } 即 T(n) = n^2+10n 三.时间复杂度 O(n) 时间复杂度是用时间频度的最大数量级表示: O(n) = ( T(n)的数量级 ) 例2中,T(n) = n^2+10n,其最大数量级为 n^2 (即忽略其常数和低级次幂) 最后 O(n) = n^2 四.时间复杂度对照表 O(1) < O(log2 N) < O(n) < O(nlog2 N) < O(n^2) < O(n^3) <

    67520编辑于 2022-05-09
  • 来自专栏来自csdn的博客

    时间复杂度

    理解时间复杂度的计算方法和分析技巧,对于优化代码性能至关重要。 知识点分析 时间复杂度的定义 时间复杂度是衡量算法运行时间与输入规模之间关系的一个指标。 常见的时间复杂度 在C语言编程中,我们经常会遇到以下几种常见的时间复杂度: O(1):常数时间复杂度。表示算法的运行时间与输入规模无关,无论输入规模多大,运行时间都是常数级别的。 例如,对于一个嵌套循环的程序: int main() { int n = 10; for (int i = 0; i < n; i++) { for (int j = 0 例如,如果输入规模是10^5,那么一个时间复杂度为O(n²)的算法可能会超时,而一个时间复杂度为O(n log n)的算法则可以顺利通过。 在实际编程中,我们需要注意时间复杂度与实际运行时间的关系、时间复杂度的上界和下界、时间复杂度与空间复杂度的权衡以及时间复杂度的计算精度等问题。

    35400编辑于 2025-04-15
  • 来自专栏Android小知识

    时间复杂度

    什么是时间复杂度 时间复杂度是指程序执行的次数,可以用大写的字母O(次数)来表示,我们常见的时间复杂度可分为四种 常数:程序执行次数是固定值 线性:程序执行次数是n次 对数:程序执行次数是折半的可以记为 log以2为底n的对数 高阶:程序执行次数为循环n次 为什么使用时间复杂度 用于判断算法的优劣,空间复杂度 相同时算法所执行的时间越小,算法越优。 常见的时间复杂度种类 一般我们所说的时间复杂度不是指具体的程序执行次数,而是假设程序执行的次数无穷大时的时间复杂度。 常数:T(n)=O(1) 线性:T(n)=O(n) 对数:T(n)=O(log以2为底n的对数) 高阶:T(n)=O(n的整数次方) 只有常数量级,时间复杂度转化为1。

    79610发布于 2020-02-18
  • 来自专栏D·技术专栏

    时间复杂度

      之前认为时间复杂度就是程序执行的时间,百度上这么说的 算法的时间复杂度是一个函数,它定性描述该算法的运行时间 很多人包括我自己都有一个疑问,就是现在的计算机的硬件性能已经很强大了,所以对于性能或者说时间复杂度上还用关心吗 比如有这样一个例子,在一台很久的机器和一台处理性能高100倍的新机器,旧机器执行算法A时间复杂度为O(n),新机器执行算法B的时间复杂度为O(n2)。 下面表格做下对比,因为性能差100倍,所以旧机器时间*100 - O(n) O(n2) n=1 100 1 n=10 1000 100 n=50 5000 2500 n=100 10000 10000 大O表示法 在举一个例子 1、 for (int i = 0; i < 10; i++) { System.out.println("执行"+i+"次"); } 这个代码总会执行10次,所以时间复杂度表现为 ,有了渐进时间复杂度

    86010发布于 2021-09-07
  • 来自专栏Linux网络:从不懂到不会

    时间复杂度

    1.1时间复杂度概念 其实就是一个函数式T(n),并非具体的运行时间,就算该算法的时间复杂度。 1.2大O的渐进表示法 计算时间复杂度就是利用大O的渐进表示法。 :O(N) 这个例子的执行次数:T(N)=2*N+M,显而易见2*N是对结果影响最大的一项,并且根据渐近法的第二条可得本例的时间复杂度。 i = 0; i < 10; i++) { count++; } } 时间复杂度:O(1) 这个例子的执行次数:T(N)=10,这个程序循环了10次,是一个具体的数字,故根据渐近法的第三条可得时间复杂度 1.4最好,最差,平均情况 例如:在一个长度为N的字符串中找一个字符 最好情况:O(1) 最坏情况:O(N) 平均情况:O(N) 一般情况下算法的时间复杂度都取最坏情况。

    10810编辑于 2026-01-12
  • 来自专栏软件工程

    时间复杂度

    也就是说,能够对一定规范的输入,在有限时间内获得所要求的输出。 算法复杂度分为时间复杂度和空间复杂度。 其作用: 时间复杂度是指执行算法所需要的计算工作量; 空间复杂度是指执行这个算法所需要的内存空间。 常数时间的操作:一个操作如果和数据量没有关系,每次都是固定时间内完成的操作,叫做常数操作。 时间复杂度为一个算法流程中,常数操作数量的指标。常用O(读作big O)来表示。 .+3+2+1)次,每次操作是一个常数时间操作记为O(1)(读作bigO(1)) 所以整个时间化简复杂度应该是(N^2 /2+N+1)*O(1),也就是(aN^2+bN+1)*O(1) image.png 这次算法时间复杂度应去掉低阶项bN+1和N的系数A f(N)=N^2, O(f(n))=O(N^2) 评价一个算法流程的好坏,先看时间复杂度的指标,然后再分析不同数据样本下的实际运行时间,也就是常数项时间

    63430编辑于 2022-05-13
  • 来自专栏C++/Linux

    时间复杂度空间复杂度

    时间复杂度 2.1 时间复杂度的概念 2.2 大O的渐进表示法 2.3 常见时间复杂度计算举例 3. 空间复杂度 4. 常见复杂度对比 5. 因此衡量一个算法的好坏,一般是从时间和空间两个维度来衡量的,即时间复杂度和空间复杂度时间复杂度主要衡量一个算法的运行快慢,而空间复杂度主要衡量一个算法运行所需要的额外空间。 时间复杂度 2.1 时间复杂度的概念 时间复杂度的定义:在计算机科学中,算法的时间复杂度是一个函数,它定量描述了该算法的运行时间。 N = 10 ,F(N) = 30 N = 100 ,F(N) = 10210 N = 1000 ,F(N) = 1002010 实际中我们计算时间复杂度时,我们其实并不一定要计算精确的执行次数 使用大O渐进法表示以后,Func1的时间复杂度为:O(N²) N = 10 ,F(N) = 100 N = 100 ,F(N) = 10000 N = 1000,F(N) = 1000000 通过上面我们会发现大

    2K00编辑于 2023-03-28
  • 来自专栏数据STUDIO

    时间序列 | pandas时间序列基础

    时间序列(time series)数据是一种重要的结构化数据形式,应用于多个领域,包括金融学、经济学、生态学、神经科学、物理学等。在多个时间点观察或测量到的任何事物都可以形成一段时间序列。 很多时间序列是固定频率的,也就是说,数据点是根据某种规律定期出现的(比如每15秒、每5分钟、每月出现一次)。时间序列也可以是不定期的,没有固定的时间单位或单位之间的偏移量。 时间序列数据的意义取决于具体的应用场景,主要有以下几种: 时间戳(timestamp),特定的时刻。 固定时期(period),如2008年1月或2020年全年。 例如,我们可以将之前那个时间序列转换为一 个具有固定频率(每日)的时间序列,只需调用resample即可 ---- pandas.date_range() 生成日期范围 pandas.date_range NaN 2011-01-12 NaN dtype: float64 shift通常用于计算一个时间序列或多个时间序列(如DataFrame的列)中的百分比变化。

    2.2K30发布于 2021-06-24
  • 来自专栏LittlePanger的代码之路

    时间复杂度与空间复杂度

    主要还是从算法所占用的「时间」和「空间」两个维度去考量。 时间维度:是指执行当前算法所消耗的时间,我们通常用「时间复杂度」来描述。 空间维度:是指执行当前算法需要占用多少内存空间,我们通常用「空间复杂度」来描述。 因此,评价一个算法的效率主要是看它的时间复杂度和空间复杂度情况。 记作 T(n)= O( f(n) ),称O( f(n) ) 为算法的渐进时间复杂度,简称时间复杂度。 T(n) 不同,但时间复杂度可能相同。 阶乘阶 旅行商问题 说明:常见的时间复杂度有小到大依次排序,随着问题规模n的不断增大,上述时间复杂度不断增大,算法的执行效率越低 1. 如果将其中一层循环的n改成m,那它的时间复杂度就变成了 O(mn) 6.

    1.1K30发布于 2020-04-14
  • 来自专栏SRE运维实践

    漫谈时间复杂度空间复杂度

    时间复杂度,就是运行一次需要花费的时间,一般N表示整个数据的长度,是否和数据的长度有关,例如O(N)就是线性关系,所谓的O(1)可以认为是常量关系,简单的理解就是:如何和长度有关,那么就是O(N),例如循环一次 ,在上面的代码中,循环了两次,所以时间复杂度为O(N**N)。 空间复杂度时间复杂度,可以作为选择数据类型的评判标准之一。 对于一种数据结构来说,有各种各样的时间复杂度,对于python的list实现,当你查询一个元素的时候,时间复杂度是O(1),常量时间;但是当你进行加入元素,删除元素的时候,时间复杂度是O(N),对于特例在尾部增加和删除的操作来说 ,时间复杂度又是O(1)。

    90830发布于 2019-07-08
  • 来自专栏程序猿杂货铺

    时间复杂度和空间复杂度

    另外,我们试想一下,如果这个算法当中的语句 sum = (1+n)*n/2; 有10 句,则与示例给出的代码就是3次和12次的差异。 int i; for(i = 0; i < n; i++){ /*时间复杂度为O(1)的程序步骤序列*/ } 03 对数阶 如下代码: int count = 1; while (count < n){ count = count * 2; /*时间复杂度为O(1)的程序步骤序列*/ } 由于每次count乘以2之后,就距离n更近了一分。 int i, j; for(i = 0; i < n; i++){ for(j = 0; j < n; j++){ /*时间复杂度为O(1)的程序步骤序列*/ } } 而对于外层的循环 的程序步骤序列*/ } } 由于当i=0时,内循环执行了n次,当i = 1时,执行了n-1次,……当i=n-1时,执行了1次。

    1.4K60发布于 2019-09-04
领券