什么是算法的时间复杂度?
发布网友
发布时间:2022-03-23 17:09
我来回答
共4个回答
懂视网
时间:2022-03-23 21:30
算法的时间复杂度是指算法在编写成可执行程序后,运行时所需要的资源,资源包括时间资源和内存资源。应用于数学和计算机导论。
同一问题可用不同算法解决,而一个算法的质量优劣将影响到算法乃至程序的效率。算法分析的目的在于选择合适算法和改进算法。一个算法的评价主要从时间复杂度和空间复杂度来考虑。
热心网友
时间:2022-03-23 18:38
时间复杂度表面的意思就是代码花费的时间,但是一般使用这个概念的时候,更注重的是随着数据量增长,代码执行时间的增长情况。一般认为一个基本的运算为一次运行算,例如加减乘除判断等等
例1和例2时间复杂度都可以简单认为是o(N),一般用时间复杂度的时候要取一个下限即可,不用那么精确,可能你认为例1是o(2N)而例2是o(n),但实际上这两者对于时间复杂度的作用来说没区别,前面已经说了,时间复杂度关注的是数据量的增长导致的时间增长情况,o(2N)和o(n)在数据量增加一倍的时候,时间开销都是增加一倍(线性增长)。
又例如两重循环的时间复杂度是o(N的平方),N扩大一倍,时间复杂度就扩大4倍。所以时间复杂度主要是研究增长的问题,一般效率较好的算法要控制在o(N)或者o(log2N)
热心网友
时间:2022-03-23 19:56
是说明一个程序根据其数据n的规模大小 所使用的大致时间和空间
说白了 就是表示 如果随着n的增长 时间或空间会以什么样的方式进行增长
例
for(int i = 0; i < n;++i)
;
这个循环执行n次 所以时间复杂度是O(n)
for(int i = 0; i< n;++i)
{
for(int j = 0; j< n;++j)
;
}
这嵌套的两个循环 而且都执行n次
那么它的时间复杂度就是 O(n^2)
时间复杂度只能大概的表示所用的时间
而一些基本步骤 所运行的时间不同 我们无法计算 所以省略
如
for(int i = 0;i < n;++i)
a = b;
和
for(int i = 0;i < n;++i)
;
这个运行的时间当然是第二个快 但是他们的时间复杂度都是 O(n)
判断时间复杂度看循环
热心网友
时间:2022-03-23 21:31
计算机科学中,算法的时间复杂度是一个函数,它定量描述了该算法的运行时间。这是一个关于代表算法输入值的字符串的长度的函数。时间复杂度常用大O符号表述,不包括这个函数的低阶项和首项系数。使用这种方式时,时间复杂度可被称为是渐近的,它考察当输入值大小趋近无穷时的情况。
算法复杂度分为时间复杂度和空间复杂度。其作用: 时间复杂度是指执行算法所需要的计算工作量;而空间复杂度是指执行这个算法所需要的内存空间。(算法的复杂性体现在运行该算法时的计算机所需资源的多少上,计算机资源最重要的是时间和空间(即寄存器)资源,因此复杂度分为时间和空间复杂度)。