python 二分查找

1.二分查找首先被查找的序列是一个有序的。

2.明确序列的左右边界

3.找出序列中间的元素,判断如果是要查找的元素,返回元素

4.如果中间元素,大于或者小于查找的元素,那么改变左右边间,直到中间的数等于查找的元素。

python 复制代码
def Two_selecter(find_num,nums):
    #划定左右边界下标
    left,right = 0,len(nums)-1
    while left <= right:
        #计算出折半值的下标
        pivot = left + (right - left) // 2
        #如果相等,就找到了,返回值
        if nums[pivot] == find_num:
            return nums[pivot]
        #如果小于中间值,中间值的下标退一位,变成右边界
        if find_num < nums[pivot]:
            right = pivot - 1
        #如果中间值小于查找值,中间值+1,变成左边界
        else:
            left = pivot + 1
    return None

a = [1,2,3,4,5,6,7,8,9,10]
print(Two_selecter(2,a))
相关推荐
无敌最俊朗@2 分钟前
Qt 多线程编程: moveToThread 模式讲解
java·开发语言
!停6 分钟前
深入理解指针(4)
开发语言·javascript·ecmascript
小白狮ww8 分钟前
Matlab 教程:基于 RFUAV 系统使用 Matlab 处理无人机信号
开发语言·人工智能·深度学习·机器学习·matlab·无人机·rfuav
埃伊蟹黄面14 分钟前
模拟算法思想
c++·算法·leetcode
BoBoZz1918 分钟前
Hello 隐式建模
python·vtk·图形渲染·图形处理
副露のmagic20 分钟前
更弱智的算法学习day 10
python·学习·算法
penngo21 分钟前
Golang使用Fyne开发桌面应用
开发语言·后端·golang
逸风尊者29 分钟前
开发可掌握的知识:uber H3网格
后端·算法
javpy36 分钟前
AI生成 Python小游戏 怪物防御战???
人工智能·python·pygame
while(1){yan}37 分钟前
JAVA中如何操作文件
java·开发语言·面试