首页 > 编程语言 > 详细

Python 二分查找

时间:2021-09-01 19:59:56      阅读:15      评论:0      收藏:0      [点我收藏+]

二分搜索是一种在有序数组中查找特定元素的搜索算法。

搜索过程中从数组的中间元素开始,如果中间元素正好是要查找的元素,则搜索结束;如果某一特定元素大于或者小于中间元素,则在数组大于或小于中间元素的那一半中查找,并且跟开始一样,从中间元素开始比较。

当数组为空时,表示找不到。这种搜索算法每次比较都使范围缩小一半。

技术分享图片

# 返回 x 在 arr 中的索引,如果不存在返回 -1
def binarySearch(arr, s, e, x):
	if e >= s:
		mid = int(s + (e-s)/2)
		if arr[mid] == x:			# 元素是中间位置
			return mid
		elif arr[mid] > x:
			return binarySearch(arr, s, mid-1, x)	# 元素小于中间位置
		else:
			return binarySearch(arr, mid+1, e, x)	# 元素大于中间位置

	else:	# 不在数组中
		return -1

arr = [2, 3, 4, 10, 40]
x = 10

result = binarySearch(arr, 0, len(arr)-1, x)
print(result)

输出结果:

3

Python 二分查找

原文:https://www.cnblogs.com/keye/p/15206617.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!