顺序查找
- 从列表第一个元素开始,顺序进行搜索,直到找到为止。
 
1  | li = [1,2,3]  | 
二分查找
只能用于有序列表
从有序列表的候选区data[0:n]开始,通过对待查找的值与候选区中间值的比较,可以使候选区减少一半。O(logn) 复杂度
1  | # 二分查找  | 
刷题:Letcode
34. Search for a Range (二分查找升级版)
1. Two Sum
习题
1 34. Search for a Range (二分查找升级版)
1  | def bin_search(li, val):  | 
2 . 1. Two Sum
1  | def two_sum(nums, target):  | 
或者
1  | def bin_search(data_set, value):  | 
扩展
1. Two Sum 如果是 3 个数 就把第一个数固定, 后面的列表用 two_sum_3 来计算
如果这样时间复杂度
nlogn + n²
最终的时间复杂度是 n²
如果用二分查找, 就需要先排序, 定住两个数, 排序(nlogn) + 定住两个数(n²) 二分(n²logn) 最终的复杂度是 n²logn