Python通过二分查找,查询有序列表中元素的下标
-
为什么使用二分查找?
因为二分查找可以快速的查找一个有序列表中的元素 注意:查找的对象必须是一个有序的列表!!!!
-
代码示例
-
通过while循环的方式可以查询出对应的下标,元素不存在在列表中返回-1,就相当于手动给python列表实现了String(字符串)的find方法。
(注:代码是在下花了四个小时绞尽脑汁才想出来的,肯定还是有不足的地方,比如每次循环都要判断right-left==1)
def BinarySearch(item, list): ''' 二分查找有序列表中的元素 :param item: 需要查找的元素 :param list: 列表 :return: 查找到返回元素在list中的下标,反之返回-1 ''' end_time = False # 结束时间 left = 0 # 左下标,初始值为0 right = len(list) # 右下标,初始值为列表的长度 while left < right: if right - left == 1: # 判断是否在做最后一次运算 right - left == 1 表示已经开始进行最后一个元素的判断 if end_time == True<
-