Python程序实现递归二分查找

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("该列表为")
print(my_list)

my_result = binary_search(my_list,0,len(my_list)-1,elem_to_search)

if my_result != -1:
   print("该元素位于索引", str(my_result))
else:
   print("未找到该元素!")

输出

该列表为
[1, 9, 11, 21, 34, 54, 67, 90]
该元素位于索引0

说明

  • 定义了一个名为’binary_search’的函数。
  • 它将列表、’low’变量、’high’变量和要搜索的元素作为参数。
  • 然后将’mid’变量赋值为’high’和’low’变量的平均值。
  • 如果’mid’位置的元素与需要搜索的元素相同,则返回它。
  • 否则,如果’mid’位置的元素大于需要搜索的元素,则通过传递不同的参数集再次调用该函数。
  • 否则,如果’mid’位置的元素小于需要搜索的元素,则通过传递不同的参数集再次调用该函数。
  • 现在定义了列表,并通过将该列表作为参数来调用该函数。
  • 此操作的数据存储在一个变量中。
  • 该变量是在控制台上显示的输出。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程