05. 算法简介和二分查找
算法的有穷性,即算法时间要可控。
算法优劣:
指数阶,随着问题规模的扩大,算法消耗的资源呈指数增长,尽量转化为其他阶。
线性阶,随着问题规模的扩大,算法消耗的资源呈指数增长,可以转化为对数阶,常量阶
或降低斜率。
对数阶,随着问题规模的扩大,算法消耗的资源呈对数增长,相对较好,可以尝试转化为常量阶。
常量阶,不管问题规模如何变,算法消耗的资源是常量,是最好的的算法,但不是总能达到。
折半查找binary search属于对数阶,前提是数组已排好序,假设按升序排列。其思想是检查目标x是否是居中元素,如果是就找到了。如果x小于居中元素,说明在左半部分。如果x大于居中元素,说明在右半部分。继续以这种思路进行下去即可找到,或者不存在。每次问题规模都减半。