为了排除特定环境和编程语言的影响去判断算法的性能,就用到算法复杂度的名词。
算法复杂度分为时间复杂度和空间复杂度
时间复杂度是程序处理的过程需要的时间,空间复杂度就是执行过程需要多少空间。
二者的区别,举个例子,计算复利终值,假定本金是a,利率是r,时间是n,公式终值=a*(1+r)^n。如果是人来计算,可以用计算器,假定计算一次用时是b,计算10次就是10*b。如果说事先有系数表,就可以查表进行计算,计算一次时间是c,但c的用时比b小多了,但是计算过程,除了一个计算器之外,还要需要一个系数表。再举个例子,在财务金融类考试中,在需要计算现值时,都会在考卷上把需要的现值系数给考生罗列出来,但是这样做,考生计算效率高了,但是占用了卷面空间。
空间复杂度是计算使用多少空间提高效率。
平常说的复杂度指的是时间复杂度。