二分查找算法
也叫折半查找!是一种效率较高的计算方法。其输入的必须是一个有序的列表
其思路为每次查找都从列表中间找起,与中间那个值进行比大小,如果是大了或者小了,则下一次查找在剩下的一半找起即可,每次都排除一半的数据,直至找到为止,如果没有找到,则返回Null!由于查找的方式简单说就是比大小,所以这就要求输入的必须是一个有序的列表!
案例
#列表默认为从小到大的顺序排列
def name(target,nums): #target表示目标值,nums表示输入的列表
little=0 #最小值的光标位置
Big=len(nums)-1 #最大值的光标位置
while little<=Big: #当最小值的光标位置小于最大值的光标位置时,则说明还有数字需要比对
Median = int((little + Big) / 2) # 中间值的光标位置
number=nums[Median] #列表中中间值
if target>number: #如果目标值大于中间值时
little=Median+1 #则将最小值的光标移到中间值的左边
elif target<number: #如果目标值小于中间值
Big=Median-1 #则将最大值的光标移到中间值的右边
elif target==number: #如果目标值等于中间值
return Median #则返回中间值索引
nums=[1,4,6,8,10,14] #输入的有序列表
target=10 #目标值
print(name(target,nums)) #输出结果4,因为列表索引从0开始,所以这里不是返回5