算法时间复杂度的出现主要是因为在不同环境下运行的程序的时间是受环境影响的,时间复杂度就可以在不考虑环境因素的影响下计算一个程序的时间效率。
第一章 算法概述
1.1 算法复杂性分析
公共标准:渐进时间复杂度
(1)大O表示法:
例如:
大O表示法和前面的最坏时间复杂度的区别在于:大O表示法表示的更为简洁,
而最坏时间复杂度相对就比较繁琐,虽然繁琐但是准确。
练习:
运算法则:
O(f) * O(g) = O(f*g) 适用的情况比如:循环嵌套
O(f) + O(g) = O(f + g) 适用的情况是: 一个程序中有多个模块,每个模块
算法的时间复杂度的阶都是一样的。
(2)大 ' 欧米伽 ' 表示法
近似法比较原则:
习题例子:
记住一点就是复杂性乘以速度就是问题规模
1.2 NP完全理论
(1)
(2)根据时间复杂度解决问题的分类:
1.3 补充
logn的具体实例比如整除:
一般循环迭代规模折半的情况就会出现logn
1.4 如何简单快速的判断一个算法的时间复杂度
1.5 空间复杂度(时间比空间重要,‘空间换时间’)