[计算机学习]Python 二分法
二分法的思想
二分查找的前提是对象是有序数据。以下内容摘自Pythontip.com 网站。
扫描二维码可以了解更多Python课程。
left = 0
right = size of array # 数组的大小
while (left + 1 < right)
mid = (left + right) / 2 # 中间mid下标
if (array[mid] == target) # 检查已找到
return mid
else if (array[mid] < target)
continue search in right side # 在 右边区间搜索
else
continue search in left side # 在 左边区间搜索
if (array[left] == target) # 循环退出后进行判断
return left
return -1
笔记1
因此,如果一个问题即便输入不是数组,但隐藏了某种单调性,也可以使用二分算法尝试解决。
笔记2 今天尝试编写一段二分法,返回目标值索引,无则返回-1
def binarySearch(nums,target): left=0 right=len(nums) while left+1<right: mid=(left+right)//2 if nums[mid]==target: return mid if nums[mid]<target: left=mid if nums[mid]>target: right=mid return -1 nums=[1,2,3,4,6,7,9,11] target=9 print(binarySearch(nums,target))