Python实现二分查找算法及完整源代码
二分查找又称折半查找,是一种效率较高、时间复杂度为O(log n)的查找算法。这种算法适用于有序数组中的查找操作。
算法步骤如下:
- 首先确定整个查找区间的中间位置mid=(left+right)/2;
- 然后将待查找的值target与数组中mid位置的值进行比较;
- 如果target小于mid位置的值,则在数组的左半部分继续查找,即新的查找区间是[left,mid-1];
- 如果target大于mid位置的值,则在数组的右半部分继续查找,即新的查找区间是[mid+1,right];
- 如果target等于mid位置的值,则查找成功,返回该位置的下标;
- 如果查找区间为空,则说明查找失败,返回-1。
以下是Python实现二分查找算法的完整源代码:
def binary_search(arr, left, right, target):
if left > right:
return -1
mid = (left + right) // 2
if arr[mid] == target:
return mid
elif target < arr[mid]:
return binar