广州北大青鸟计算机职业培训学校
互联网技术培训、软件技术培训、大数据培训、云计算培训、数据分析培训信息网
当前位置:网站首页 > 软件教程 > Python技术 > 正文

Python二分查找_惠州计算机Python软件开发

作者:黄君发布时间:2021-01-12分类:Python技术浏览:1033


导读:二分搜索是一种在有序数组中查找某一特定元素的搜索算法。搜索过程从数组的中间元素开始,如果中间元素正好是要查找的元素,则搜索过程结束;如果某一特定元素大于或者小于中间元素,则在数组大于或小于中间元素的那一半中查找,而且跟开始一样从中间元素开始比较。如果在某一步骤数组为空,则代表找不到。这种搜索算法每一次比较都使搜索范围缩小一半。

二分搜索是一种在有序数组中查找某一特定元素的搜索算法。搜索过程从数组的中间元素开始,如果中间元素正好是要查找的元素,则搜索过程结束;如果某一特定元素大于或者小于中间元素,则在数组大于或小于中间元素的那一半中查找,而且跟开始一样从中间元素开始比较。如果在某一步骤数组为空,则代表找不到。这种搜索算法每一次比较都使搜索范围缩小一半。

实例 : 递归

# 返回 x 在 arr 中的索引,如果不存在返回 -1

def binarySearch (arr, l, r, x):      


      # 基本判断

      if r >= l: 

          

          mid = int(l + (r - l)/2)


           # 元素整好的中间位置

           if arr[mid] == x:

                return mid

   

           # 元素小于中间位置的元素,只需要再比较左边的元素

           elif arr[mid] > x:

                   return binarySearch(arr, l, mid-1, x)

  

           # 元素大于中间位置的元素,只需要再比较右边的元素

           else:

                  return binarySearch(arr, mid+1, r, x)


     else:

            # 不存在

            return -1  


# 测试数组

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

x = 10  


# 函数调用

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


if result != -1:

     print ("元素在数组中的索引为 %d" % result )

else:

     print ("元素不在数组中")


执行以上代码输出结果为:

元素在数组中的索引为 3


点击咨询直接了解更多相关资料,我在惠州北大青鸟新方舟等你。

622762d0f703918f77154fb4413d269758eec48c.png


标签:惠州计算机软件培训惠州计算件软件开发惠州计算机软件基础惠州计算机Python软件开发惠州Python培训


Python技术排行
标签列表
网站分类
文章归档
最近发表