什么是算法的时间复杂度?
时间复杂度表面的意思就是代码花费的时间,但是一般使用这个概念的时候,更注重的是随着数据量增长,代码执行时间的增长情况。一般认为一个基本的运算为一次运行算,例如加减乘除判断等等
例1和例2时间复杂度都可以简单认为是o(N),一般用时间复杂度的时候要取一个下限即可,不用那么精确,可能你认为例1是o(2N)而例2是o(n),但实际上这两者对于时间复杂度的作用来说没区别,前面已经说了,时间复杂度关注的是数据量的增长导致的时间增长情况,o(2N)和o(n)在数据量增加一倍的时候,时间开销都是增加一倍(线性增长)。
又例如两重循环的时间复杂度是o(N的平方),N扩大一倍,时间复杂度就扩大4倍。所以时间复杂度主要是研究增长的问题,一般效率较好的算法要控制在o(N)或者o(log2N)
如果一个问题的规模是n,解决这一问题所需算法所需要的时间是n的一个函数T(n),则T(n)称为这一算法的时间复杂度。
一个算法花费的时间与算法中语句的执行次数成正比例,时间复杂度一般用O(f(x))表示.f(x)在简单程序中就是看有几个for循环,然后看看再它的判断语句,就是看看它执行了几次,f(x)=“执行的次数”。
像题中的(1)有一个for循环执行次数为n次,所以f(x)=n,时间复杂度就为O(n)
(2)有两个for循环执行次数为n*n,即n的平方,所以f(x)=n的平方,时间复杂度就是O(n的平方)。
(3)是递归,它也执行了n次所以它的时间复杂度就是O(n).
不过要注意时间复杂度的f(x)在有限次时就用具体数值表示,无限次时就用n,n的平方,log以2为底n的对数,其实很简单就是看n的最高次方,看n的最高次方等于几,f(x)就等于几。
是说明一个程序根据其数据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)
判断时间复杂度看循环
算法的时间复杂性是指( )。
算法的复杂度分时间复杂度和空间复杂度。时间复杂度:在运行算法时所耗费的时间为f(n)(即 n的函数)。空间复杂度:实现算法所占用的空间为g(n)(也为n的函数)。
算法时间复杂度?
一般情况下,算法中基本操作重复执行的次数是问题规模n的某个函数,用T(n)表示,若有某个辅助函数f(n),存在一个正常数c使得fn*c>=T(n)恒成立。记作T(n)=O(f(n)),称O(f(n)) 为算法的渐进时间复杂度,简称时间复杂度。以下是算法复杂度的应用:1、优化程序性能:通过对程序中复杂度高的...
计算算法的时间复杂度是属于一种( )。
【答案】:B 算法效率——用依据该算法编制的程序在计算机上执行所消耗的时间来度量。(1)事后统计——利用计算机内计时功能,不同算法的程序可以用一组或多组相同的统计数据区分。缺点:①必须先运行依据算法编制的程序;②所得时间统计量依赖于硬件、软件等环境因素,掩盖算法本身的优劣。(2)事前分析...
算法的特性有哪些?
1、时间复杂度 算法的时间复杂度是指执行算法所需要的计算工作量。一般来说,计算机算法是问题规模n 的函数f(n),算法的时间复杂度也因此记做。2、空间复杂度 算法的空间复杂度是指算法需要消耗的内存空间。其计算和表示方法与时间复杂度类似,一般都用复杂度的渐近性来表示。同时间复杂度相比,空间...
算法复杂度:时间复杂度和空间复杂度
时间复杂度是指执行算法所需要的计算工作量; 而空间复杂度是指执行这个算法所需要的内存空间。 (算法的复杂性体现在运行该算法时的计算机所需资源的多少上,计算机资源最重要的是时间和空间(即寄存器)资源,因此复杂度分为时间和空间复杂度)。 一个算法执行所耗费的时间,从理论上是不能算出来的,必须上机运行测试才能...
算法的时间复杂度取决于
算法的时间复杂度取决于如下:算法的时间复杂度取决于问题的规模,待处理数据的初态。算法(Algorithm)是指解题方案的准确而完整的描述,是一系列解决问题的清晰指令,算法代表着用系统的方法描述解决问题的策略机制。也就是说,能够对一定规范的输入,在有限时间内获得所要求的输出。如果一个算法有缺陷,...
算法的时间复杂度取决于什么?
算法的时间复杂度取决于问题的规模,待处理数据的初态。一个语句的频度是指该语句在算法中被重复执行的次数。算法中所有语句的频度之和记为T(n),它是该算法问题规模n的函数,时间复杂度主要分析T(n)的数量级。算法中基本运算(最深层循环内的语句)的频度与Tn)同数量级,因此通常采用算法中基本运算...
算法的时间复杂度取决于什么?
算法的时间复杂度取决于问题的规模,待处理数据的初态。一个语句的频度是指该语句在算法中被重复执行的次数。算法中所有语句的频度之和记为T(n),它是该算法问题规模n的函数,时间复杂度主要分析T(n)的数量级。算法中基本运算(最深层循环内的语句)的频度与Tn)同数量级,因此通常采用算法中基本运算...
算法时间复杂度的分析通常有两种方法,即___和___,通常我们对算法求时...
时间复杂度通常是衡量算法的优劣的,衡量算法的时间严格来讲是很难衡量的,由于不同的机器性能不用环境都会造成不同的执行时间空间复杂度是对一个算法在运行过程中临时占用存储空间大小的度量,也是使用大O表示法。算法分析解释 是对一个算法需要多少计算时间和存储空间作定量的分析算法是解题的步骤,可以...
算法复杂度的时间复杂度
但我们不可能也没有必要对每个算法都上机测试,只需知道哪个算法花费的时间多,哪个算法花费的时间少就可以了。并且一个算法花费的时间与算法中语句的执行次数成正比例,哪个算法中语句执行次数多,它花费时间就多。一个算法中的语句执行次数称为语句频度或时间频度。记为T(n)。算法的时间复杂度是指执行...
政庄产灵:[答案] 时间复杂度表面的意思就是代码花费的时间,但是一般使用这个概念的时候,更注重的是随着数据量增长,代码执行时间的增长情况.一般认为一个基本的运算为一次运行算,例如加减乘除判断等等 例1和例2时间复杂度都可以简单认为是o(N),一般...
勃利县15587114606: 一个算法的时间复杂度指的是什么? ?
政庄产灵: 一个算法的时间复杂度(TimeComplexity,也称时间复杂性)T(n)是该算法的时间耗费,是该算法所求解问题规模n的函数
勃利县15587114606: 算法的复杂度主要包括算法的时间复杂度和空间复杂度,算法的时间复杂度是指 - ?
政庄产灵: 时间复杂度考虑的是算法的执行时间,因此是D
勃利县15587114606: 算法的时间复杂性是指( ). - ?
政庄产灵: 算法的复杂度分时间复杂度和空间复杂度. 时间复杂度:在运行算法时所耗费的时间为f(n)(即 n的函数). 空间复杂度:实现算法所占用的空间为g(n)(也为n的函数).
勃利县15587114606: 什么是算法的时间复杂度 - ?
政庄产灵: 由于计算机执行计算是需要时间的,因此对于一个算法的好坏,我们需要估计它需要多久才能完成计算.不过计算机耗费的时间是在执行指令上的,因此我们所估计的时间复杂度实际上是估计一个程序,相对于它的输入,它执行多少条指令才能给出答案.如果我们有n个输入,那么T(n)表示的是它所执行的指令数,再将T(n)乘上每条指令执行的时间,就是实际耗费的时间.但是每条指令执行的时间是由计算机配置好坏决定的,因此无法用来评价算法的好坏,所以我们用T(n),即算法相对于输入所执行的指令数,来表示算法的时间复杂度.
勃利县15587114606: 数据结构中算法的时间复杂度是什么? - ?
政庄产灵: 程序所用时间关于数据规模的函数 比如: 给n个数排序需要n^2的时间 时间复杂度就是O(n^2) 通常有 O(2) 常数 与输入数据规模无关 O(n) 成正比 O(log2n) 平方与数据规模成正比 O(n^2) 与数据规模的平方成正比 O(n^3) ……三次方…… O(n!) 阶乘
勃利县15587114606: 什么是算法复杂度 - ?
政庄产灵: 算法复杂度,即算法在编写成可执行程序后,运行时所需要的资源,资源包括时间资源和内存资源. 同一问题可用不同算法解决,而一个算法的质量优劣将影响到算法乃至程序的效率.算法分析的目的在于选择合适算法和改进算法.一个算法的...
勃利县15587114606: 算法的时间复杂度指? - ?
政庄产灵: 指算法执行过程中所需要的基本运算次数.
勃利县15587114606: 有关算法的时间复杂度 - ?
政庄产灵: N的3次方是指这里举的例子:“两个n阶矩阵相乘”而言. 它说,这个问题的“规模”等于矩阵的阶数 n . 两个n阶矩阵相乘的基本运算(两个实数的乘法)次数正好是阶数的三次方. f (n) = n ^ 3 .矩阵乘法程序见: http://zhidao.baidu.com/question/9394030.html别的算法的时间复杂度=算法的工作量=f (n) f (n) 是什么,要看算什么,怎么算,才知道.未必是N的3次方.