第三章:数组的查找
前两章我们熟悉了各种各样的数据结构,现在我们来关注从数据中查找元素的方法;
线性查找
这是最简单枯燥的查找方式,它的逻辑是:
- 检查当前元素是否匹配,不匹配则将视线移动到下一个元素上
是的,这样简单的逻辑足够完成查找任务,但它显然不够快;因为如果我们要的数据在数组的最后面,而它只能一个元素检查一次慢悠悠的向后搜索;
数据量为n时,时间复杂度为 O ( n ) O(n) O(n)
二分查找
执行二分查找的前提是整个序列是排序过的;它的查找逻辑是:
- 选出当前序列的中间元素,通过比较大小判断目标元素在中间元素的哪一边;然后将那边的序列作为下一轮检查的操作对象;
- 当找到目标元素时查找停止
二分查找的时间复杂度是 O ( lg n ) O(\lg{n}) O(lgn)