python实现二分查找代码+详解

python实现二分查找代码+详解python 实现二分查找代码 详解 一 规定函数值 函数输入值 li 1 2 3 4 5 6 7 8 9 输入的集合 val 4 要查找的值 函数内部值 left 0 代表集合中第一个值的位置 right len li 1 代表集合中最后一个值的位置 mid 0 分割时记录中间位置 二 分割区域

大家好,我是讯享网,很高兴认识大家。

python实现二分查找代码+详解

一、规定函数值

函数输入值
li=[1,2,3,4,5,6,7,8,9]#输入的集合
val=4#要查找的值
函数内部值
left=0#代表集合中第一个值的位置
right=len(li)-1#代表集合中最后一个值的位置
mid=0#分割时记录中间位置
在这里插入图片描述
讯享网

二、分割区域

对集合li进行对半分割
集合分为1-5片区(红色片区)、5片区(蓝色片区 )、5-9片区(黄色片区)
经过分割后将val的值分厂三个片区
1.红色片区
val取值 1<=val<5
2.蓝色片区
val取值 val=5
3.黄色片区
val取值5<val<=9
在这里插入图片描述

三、区域操作

分割完后对三个区域分别判断即可
操作一:排除蓝色片区 (val=5)是否是想找的值
if val==li[mid]:
return mid
操作二:排除黄**是否在存在val
if li[mid]<val<=li[right]: 如果在里面将集合缩减为6-9即可
left=mid+1
操作三:排除红**是否在存在val
if li[left]<=val<li[mid]: 如果在里面将集合缩减为1-4即可
right=mid-1

四、代码

def lin(li,val): left=0#代表集合中第一个值的位置 right=len(li)-1#代表集合中最后一个值的位置 while left<=right: mid=(left+right)//2#将集合分割,mid分割时记录中间位置 if li[mid]==val:#操作一:排除蓝色片区 (val=5)是否是想找的值 print(mid) return mid elif li[mid]<val:#操作二:排除黄**是否在存在val left=mid + 1 else:#操作三:排除红**是否在存在val right=mid - 1 else: print(None) 

讯享网
小讯
上一篇 2025-03-07 10:12
下一篇 2025-02-23 11:14

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/34212.html