1、二分查找法
是一种在有序数组中查找某一特定元素的搜索算法。
复杂度:
算法步骤:
先决条件:查找对象是有序数组
注意数据类型是有范围的,采用 L+(R-L)/ 2 表达式更合适
注意 L = m +1 、R = m - 1 ,防止死循环
适用范围:小数据量
常见面试变种:
- 查找第一个/最后一个与target相等的元素
- 查找最后一个小于target/第一个大于target的元素
- 查找最后一个小于等于target/第一个大于等于target的元素
- 数组的旋转(4,5,6,1,2,3)
2. 数组和链表
插入删除很少,查询非常多,又不会out of memory ,采用 数组。
如果是频繁的插入、遍历,查询检索很少,就采用 链表。
时间复杂度对比: