大O表示法
提到数据结构和算法经常会提到大O表示这个概念。一开始刚接触的时候我就很懵圈这是个什么玩意!随着深入了解,其实大O表示法指出了算法有多快,它并不是以单位来评估速度,它注重的是算法运行时间的增速(个人理解类似物理中加速的意思)。
eg:假设列表包含n个元素。简单查找需要检查每个元素,因此需要执行n次操作。使用大O表示法,这个运行时间为O(n)。
常见的集中大O运行时间:
- O(log n),也叫对数时间,这样的算法包括二分查找。
- O(n),也叫线性时间,这样的算法包括简单查找。
- O(n*log n),包括的算法有快速排序。
- O( n 2 n^2 n2),包括的算法选择排序。
- O(n!)
盗个图。。。。