算法的时间复杂度
2017-10-13 06:43
190 查看
算法的时间复杂度
分析一个算法的好坏,一般是分析其时间复杂度T(n)和空间复杂度S(n)。其中时间复杂度(Time complexity)是指算法执行时耗费时间的长度,空间复杂度(Space complexity)是指占用存储单元的长度。本文只讨论时间复杂度的情况。执行时间(running time)是取决于input size的数量级(n=6 和n=10^6所耗费的时间当然是不同的)、input pattern (如果要求对输入的数列作降序排序,输入的是升序数列就是最坏的情况,输入升序数列就是最佳情况)、机器配置(自己的小笔记本和超级计算机)。所以要定义时间复杂度,其实是有一些“默认的规则”存在的:
定义一个关于n的函数T(n) 例如T(n)=2n^2+6n+10
只考虑最坏情况
computional model 是RAM(Random Access Machine)
这里说的RAM是real-RAM也就是: 每个实数存储在一个存储单元内;给定一个内存地址,我们可以直接获取到这个数据而非从存储单元的第一个地址开始查找;假设原语操作(primitive operation)的执行时间为常数c。
a. arithmetic opreations: +、-、 *、 /、 ^(1/2)
b. assignment: =; x=y; y=5;
c. comparisions: >、< 、==、x>y
d. flow control: if、while
附上几页笔记
相关文章推荐
- 算法的时间复杂度(皮毛)
- 算法——从时间复杂度开始说起
- 算法的时间复杂度和空间复杂度
- 如何计算算法的时间复杂度
- [转]算法的时间复杂度和空间复杂度详解
- 算法的时间复杂度O(logN)底数
- 算法 时间复杂度|空间复杂度
- 算法-计算时间复杂度
- 各种算法的时间复杂度
- 排序算法分类和算法时间复杂度比较
- 算法时间复杂度-平方阶
- 算法常用的时间复杂度(log(n),sqrt(x),n,n*log(n),n^2,n^3,2^n)的函数坐标图
- 算法面试题——两个有序数组,将一个数组放入另一个空间很大的数组,要求合并之后依然有序,时间复杂度要求最小,不使用额外的数组。
- 算法时间复杂度对比
- 算法之时间复杂度
- SQL性能优化中的底层概念,时间复杂度,算法和数据结构,数据库组成,查询优化和表关联原理.
- 掌握算法的渐近时间复杂度和空间复杂度的意义与作用
- 算法的时间复杂度和空间复杂度杂谈
- 算法的时间复杂度和空间复杂度-总结
- 算法中的各种排序以及查找时间复杂度