使用递归实现二进制搜索的Python程序
当需要使用递归实现二进制搜索时,可以定义一种方法,该方法检查索引“high”是否大于索引“low”。基于'mid'变量上存在的值,再次调用该函数以搜索元素。
列表可用于存储异构值(即,任何数据类型的数据,例如整数,浮点数,字符串等)。
以下是相同的演示-
示例
def binary_search(my_list, low, high, elem): if high >= low: mid = (high + low) //2 if my_list[mid] == elem: return mid elif my_list[mid] > elem: return binary_search(my_list, low, mid - 1, elem) else: return binary_search(my_list, mid + 1, high, elem) else: return -1 my_list = [ 1, 9, 11, 21, 34, 54, 67, 90 ] elem_to_search = 1 print("The list is") print(my_list) my_result = binary_search(my_list,0,len(my_list)-1,elem_to_search) if my_result != -1: print("Elementfoundatindex ", str(my_result)) else: print("Elementnotfound!")输出结果
The list is [1, 9, 11, 21, 34, 54, 67, 90] Elementfoundatindex 0
解释
定义了一个名为“binary_search”的函数。
它以列表,“低”变量,“高”变量以及要搜索的元素作为参数。
然后,将变量“mid”分配给“高”和“低”变量的平均值。
如果“mid”处的元素与需要搜索的元素相同,则将其返回。
否则,如果位于“中间”位置的元素大于要搜索的元素,则通过传递不同的参数集来再次调用该函数。
否则,如果位于“中间”位置的元素小于要搜索的元素,则通过传递一组不同的参数来再次调用该函数。
现在定义了列表,并通过将该列表作为参数传递来调用函数。
该操作的数据存储在变量中。
此变量是控制台上显示的输出。