虽然计算机能快速的完成运算处理,但实际上,它也需要根据输入数据的大小和算法效率来消耗一定的处理器资源。要想编写出能高效运行的程序,我们就需要考虑到算法的效率。
算法的效率主要由以下两个复杂度来评估:
时间复杂度:用来表示算法执行时间的单位,一般来说,时间复杂度高的算法比时间复杂度低的算法慢。
空间复杂度:用来表示算法占用内存大小的单位
设计算法时,一般是要先考虑系统环境,然后权衡时间复杂度和空间复杂度,选取一个平衡点。不过,时间复杂度要比空间复杂度更容易产生问题,因此算法研究的主要也是时间复杂度,不特别说明的情况下,复杂度就是指时间复杂度。
常见的时间复杂度,按效率排序:
如何一眼判断时间复杂度:
1、循环减半的过程 -> O(log(n))
2、几次循环就是n的几次方的复杂度