算法复杂度分为时间复杂度和空间复杂度。
什么是复杂度:
- 程序执行时需要的计算量和内存空间(和代码是否简洁无关)。
- 复杂度是数量级(方便记忆、推广),不是具体数字,内部是一个函数表达式。
- 一般针对一个具体的算法,而非一个完整的系统。
时间复杂度:
程序执行时需要的计算量(cpu)
- O(1)一次就够(数量级)
- O(n)和传输的数据量一样(数量级)
- O(n^2)数据量的平方(数量级)
- O(login)数据量的对数(数量级)
- O(n*login)数量量*数据量的对数(数量级)
空间复杂度
程序执行时需要的内存空间
- O(1)有限的、可数的空间(数量级)
- O(n)和输入的数据量相同的空间(数量级)