转自:微点阅读(www.weidianyuedu.com)微点阅读 - 范文大全 - 免费学习知识的网站
简单聊聊算法复杂度这个概念,算法复杂度包含时间复杂度和空间复杂度二个方面。
时间复杂度:评估执行程序所需的时间。可以估算出程序对处理器的使用程度。空间复杂度:评估执行程序所需的存储空间。可以估算出程序对计算机内存的使用程度。
因为时间复杂度要比空间复杂度更容易产生问题也更有优化的价值,一般说来,不特别说明,复杂度就是指时间复杂度。
时间复杂度及其标示法
一般说来,一个算法要执行所耗费的时间,你不去机器上运行一下,是不可知的,即使你去机器上运行,每次执行所耗费的时间也应该是不一样的。但是我们怎么知道那个算法耗费的时间多那个耗费的时间少呢?这个就要看你设计的算法运行一次所执行的关键语句次数的多少了,如果你的算法执行的关键语句次数多,那么算法花费的整体时间就多,相反时间就少。我们把关键语句执行次数【也叫问题规模】记做n,则算法总运行时间可以记做T(n)。计算机中我们经常用O(n)来标示时间的复杂度,其中n为问题规模。
几种常见的时间复杂度及示例
需要说明的是,根据输入数据的不同,一般会有最好时间复杂度,最坏时间复杂度和平均时间复杂度。我们设计算法时不能指望输入数据每次都是最优的,因此,考虑到输入数据的随机性,我们一般ca