时间复杂度和空间复杂度:
时间复杂度:
O() 大O法表示的是算法运行的快慢(类似于运行次数的抽象归类)
时间复杂度的三大基本表示原则:
1、用常数1取代运行中的所有加法常数
2、在修改后的运行次数函数中,只保留最高阶数
3、如果最高阶数存在,且系数不为1,则去除该项数的常数
常见的复杂度类型,以及常见的大O复杂度:
常数阶、对数阶、线性阶、平方阶、
O(logn),也叫对数时间,这样的时间复杂度常用于二分查找
O(n),也叫线性时间,常用于简单查找
O(n*logn),这样的包括快速排序——一种速度很快的排序方法
O(n^2),这样的算法包括选择排序——一种较慢的排序方法
O(n!),一般用于旅行商问题(选择城市间的最快路线问题)
空间复杂度:
取决于算法执行过程中所需要的辅助空间占输入空间的大小