#折半查找法1.0:在一串基本有序数字中找到数字:29--进行2个数的比较
a=7
b=8
if(a==b):
print("两个数相等")
else:
print("两个数不相等")
#折半查找2.0--找到一个数列的中间位置开始查找
a=7
ls=[1,4,6,11,23]
left=0
n=len(ls)
#print("n=",n)
right=n-1
mid=(left+right)//2
#mid=int((left+right)/2) 整除,这2行一个意思
print("中间元素为:",ls[mid])
#print("mid",mid)
if(a==ls[mid]):
print("两个数相等")
else:
print("两个数不相等")
#折半查找3.0--查找位置的处理
a=2
ls=[1,4,6,11,23]
left=0
n=len(ls)
right=n-1
mid=(left+right)//2
if(a>ls[mid]):
left=mid+1
elif(a<ls[mid]):
right=mid-1
else:
print("找到该数字")
mid=(left+right)//2
print("新的中间位置为:",mid,"元素值为:",ls[mid])
#折半查找4.0--折半查找循环处理
a=0
ls=[1,4,5,7,23]
left=0
n=len(ls)
right=n-1
mid=(left+right)//2
while(left<=right):
if(a>ls[mid]):
left=mid+1
elif(a<ls[mid]):
right=mid-1
else:
print("找到该数字")
break;
mid=(left+right)//2
print("新的中间位置为:",mid,"元素值为:",ls[mid])
if(left>right):
print("meiyou找到该数字")
"""
#折半查找5.0--写入一个自定义函数中
def search(a,ls):
left=0
n=len(ls)
right=n-1
mid=(left+right)//2
while(left<=right):
if(a>ls[mid]):
left=mid+1
elif(a<ls[mid]):
right=mid-1
else:
print("找到该数字")
return 1
break;
mid=(left+right)//2
print("新的中间位置为:",mid,"元素值为:",ls[mid])
#if(left>right):
return 0
a=int(input("输入一个数"))
ls=[1,4,5,7,11,19,23,88]
result=search(a,ls)
if(result==0):
print("该数不存在")
else:
print("该数存在")
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~