【Algorithm】01_查找
1 顺序查找
- 原理:对列表中的每一个元素和待查找元素进行一一比对。
- 时间复杂度:O (N)
1 def LinearSearch(list, tar): 2 for i in range(len(list)): 3 if list[i] == tar: 4 return i 5 return -1
2 二分查找
- 原理:对列表中的元素进行排序,将开始指针指向列表头、结束指针指向列表尾,比对中间元素与待查找元素,更新开始或结尾指针,重复“比对-更新”过程,直到开始指针大于结束指针。
- 时间复杂度:O (logN)
1 def BinarySearch(lis, tar): # lis必须升序排列 2 start = 0 3 end = len(lis) - 1 4 while start <= end: 5 mid = (start + end) // 2 6 if lis[mid] == tar: 7 return mid 8 elif lis[mid] > tar: 9 end = mid - 1 10 else: 11 start = mid + 1 12 return -1
- 注意点:
① 列表必须是有序的。
② 第4行start和end的关系必须是“小于等于”。

浙公网安备 33010602011771号