Python实现二分查找算法,图片结合代码讲解,简单易懂

Python实现二分查找算法,图片结合代码讲解,简单易懂

二分查找是指在一个数组中循环找到特定的目标元素的一种算法,二分查找算法要求这个数组必须是有序的,如果不是有序则最后得出的结果是不准确的,因为其原理是从数组的中间元素开始向两边查找,如果你想要的元素的位置刚好是在这个数组的中间,则此时二分查找过程就结束了,如果此时目标元素大于中间元素的话,程序则向左边继续进行二分查找,反之小于中间元素的话就往右边继续二分查找,于此类推直到找到目标元素或者整个数组遍历完为止,如果整个数组都遍历完还是没找到对应的目标元素,则表示目标元素不存在该数组中,如果找到了目标元素的话则返回目标元素所在数组中的下标值。
​ python版本:3.9.12
​ 开发工具:PyCharm
​ 操作系统:Windows 11
具体分析如下:
Python实现二分查找算法,图片结合代码讲解,简单易懂_第1张图片
接下来是具体代码实现

# 二分查找法
def binSearchFunc(arr, start, length, target):
    if length >= 1:
        mid = int(start + (length - start) / 2)  # 求数组的中间位置
        if arr[mid] == target:  # 如果等于目标查找值则返回当前的位置mid
            return mid
        elif arr[mid] < target: #如果小于目标值则向右继续查找
            return binSearchFunc(arr,mid+1,length,target)
        else:
            return binSearchFunc(arr,start,mid-1,target)

arrays=[1,2,3,5,6,8]
i=binSearchFunc(arrays,0,len(arrays),5)
print(arrays[i])

输出结果是
Python实现二分查找算法,图片结合代码讲解,简单易懂_第2张图片
总结,二分查找还是比较好理解,但是我们需要注意的就是数组一定是要有序的,可以是降序,也可以是升序,本文举例子的是以升序为主,降序的需要将代码稍作修改,二分查找在一些面试的时候还是会经常被问到的,所以大家还是得熟悉。

你可能感兴趣的:(Python那些事,算法,python)