算法分析之时间复杂度与空间复杂度
2017-07-26 23:48
232 查看
1, 什么是数据结构?
看到有的答案是这样写的:数据结构就是计算机存储,组织数据的方式。
2,什么是算法?
算法就是用系统方法解决问题的策略机制。而时间复杂度与空间复杂度就是衡量一个算法优劣的标准
3,什么是时间复杂度?
当一个算法在系统中运行时,它被执行了n次,此时这个算法的规模为n,执行完这个算法所用的时间与规模n成正比,这个正比称为时间频度,记为 T(n),随着规模n不断增大,T(n)也随之变化,,若有某个辅助函数f(n),使得当n趋近于无穷大时,T(n)/f(n)的极限值为不等于零的常数,则称
f(n) 是T(n)的同数量级函数。记作T(n)=O(f(n)),称O(f(n)) 为算法的渐进时间复杂度,简称时间复杂度。
4,时间复杂度计算方式
随着n逐渐增大,辅助函数f(n)的一些常数项,低阶系数,首项系数已经可以忽略不计,所以时间复杂度只比较最高项次数 比如常数阶O(1),对数 阶O(log2n),
线性阶O(n), 线性对数阶O(nlog2n),平方阶O(n2),立方阶O(n3),...,
k次方阶O(nk),指数阶O(2n)。随着问题规模n的不断增大,上述 时间复杂度不断增大,算法的执行效率越来越低。
5,空间复杂度
是指运行完一个程序所需要的空间大小,计算机运行一个程序,需要对这个程序本身的常数,变量,指令,以及输入的数据进行存储,还需要 对执行这个程序所用到的工作单元与辅助信息,所以运行一个程序所需要的空间有两部分,
(1):静态空间:主要包括指令空间(即代码空间)、数据空间(常量、简单变量)等所占的空间。这部分属于静态空间。
(2):动态空间:这部分空间的主要包括动态分配的空间,以及递归栈所需的空间等。这部分的空间大小与算法有关
看到有的答案是这样写的:数据结构就是计算机存储,组织数据的方式。
2,什么是算法?
算法就是用系统方法解决问题的策略机制。而时间复杂度与空间复杂度就是衡量一个算法优劣的标准
3,什么是时间复杂度?
当一个算法在系统中运行时,它被执行了n次,此时这个算法的规模为n,执行完这个算法所用的时间与规模n成正比,这个正比称为时间频度,记为 T(n),随着规模n不断增大,T(n)也随之变化,,若有某个辅助函数f(n),使得当n趋近于无穷大时,T(n)/f(n)的极限值为不等于零的常数,则称
f(n) 是T(n)的同数量级函数。记作T(n)=O(f(n)),称O(f(n)) 为算法的渐进时间复杂度,简称时间复杂度。
4,时间复杂度计算方式
随着n逐渐增大,辅助函数f(n)的一些常数项,低阶系数,首项系数已经可以忽略不计,所以时间复杂度只比较最高项次数 比如常数阶O(1),对数 阶O(log2n),
线性阶O(n), 线性对数阶O(nlog2n),平方阶O(n2),立方阶O(n3),...,
k次方阶O(nk),指数阶O(2n)。随着问题规模n的不断增大,上述 时间复杂度不断增大,算法的执行效率越来越低。
5,空间复杂度
是指运行完一个程序所需要的空间大小,计算机运行一个程序,需要对这个程序本身的常数,变量,指令,以及输入的数据进行存储,还需要 对执行这个程序所用到的工作单元与辅助信息,所以运行一个程序所需要的空间有两部分,
(1):静态空间:主要包括指令空间(即代码空间)、数据空间(常量、简单变量)等所占的空间。这部分属于静态空间。
(2):动态空间:这部分空间的主要包括动态分配的空间,以及递归栈所需的空间等。这部分的空间大小与算法有关
相关文章推荐
- 一个台阶总共有n级,如果一次可以跳1级,也可以跳2级。 求总共有多少总跳法,并分析算法的时间复杂度
- 一串首尾相连的珠子(m个),有N种颜色(N《=10),设计一个算法,取出其中一段,要求包含所有N中颜色,并使长度最短。并分析时间复杂度与空间复杂度
- 算法分析与时间复杂度
- 分析算法时间复杂度的方法
- 【C语言】求取第n个斐波那契数的时间复杂度、空间复杂度分析,用三种方式实现(普通递归,循环,优化递归)
- 分析算法的时间复杂度
- 长度为n的整数数组,找出其中任意(n-1)个乘积最大的那一组,只能用乘法,不可 以用除法。要求对算法的时间复杂度和空间复杂度作出分析,可以写思路也可以写程序。
- 分析算法时间复杂度--主项定理
- 从一个实例(整数幂指数)进行算法时间复杂度的分析
- 算法-时间复杂度、空间复杂度
- 算法 时间复杂度|空间复杂度
- 算法效率的度量方法,算法时间复杂度、空间复杂度计算
- 重拾算法(一):算法效率分析(空间复杂度和时间复杂度)
- 【算法题】题目:一个台阶总共有n级,如果一次可以跳1级,也可以跳2级。 求总共有多少总跳法,并分析算法的时间复杂度
- 各个算法的时间复杂度和空间复杂度分析
- 算法复杂度,时间复杂度,空间复杂度 整理汇总
- [算法技术]算法的时间复杂度与空间复杂度
- 数据挖掘算法的空间复杂度与时间复杂度分析
- 算法分析(1)-循环的时间复杂度
- 基础知识——算法复杂度 时间复杂度,空间复杂度简介