二分查找算法(python)

二分查找法
函数功能:
传入一个列表(arr)和要查找的元素(num),返回该元素索引

def main(arr, num):
	'''二分查找算法 找到元素则返回索引 找不到则返回字符串'''

	i = 0  #列表首索引
	j = len(arr) - 1   #列表尾索引
	mid = (i + j) // 2	#中间值索引

	while i <= j:
		mid = (i + j) // 2
		if num > arr[mid]:	# 如果要查找的元素大于中间值

			i = mid + 1  # 首索引的值为 中间值索引 + 1

		elif num < arr[mid]:  # 如果要查找的元素小于中间值

			j = mid - 1  # 尾索引的值为 中间值索引 - 1

		elif num == arr[mid]:  # 直到找到要查找的值为止
			return mid  #返回查找到的元素索引

	else:  # 如果正常退出 则没有查找到
		return "没有查找到该元素"
	

if __name__ == '__main__':
	for i in range(1,12):
		a = main([1,2,3,4,5,6,7,8,9,10], i)
		print("元素 ", i ," 的索引为:", a)

运行结果:
元素 1 的索引为: 0
元素 2 的索引为: 1
元素 3 的索引为: 2
元素 4 的索引为: 3
元素 5 的索引为: 4
元素 6 的索引为: 5
元素 7 的索引为: 6
元素 8 的索引为: 7
元素 9 的索引为: 8
元素 10 的索引为: 9
元素 11 的索引为: 没有查找到该元素

猜你喜欢

转载自blog.csdn.net/qq_42265536/article/details/85129464