<每日一题>题目6:二分查找
2024-09-06 10:27:33
#二分查找
'''
1.end问题
2.44对应的end<start 找不到情况
3.返回值递归的情况
4,611,aim太大的情况
'''
l = [2,3,5,10,15,16,18,22,26,30,32,35,41,42,43,55,56,66,67,69,72,76,82,83,88]
def find(l,aim,start=0,end=None):
end = len(l) if end is None else end
Mid_index = (end - start) // 2 +start
if aim <= l[len(l)-1]:
if end >= start:
if l[Mid_index] > aim:
return find(l,aim,start=start,end = Mid_index-1)
elif l[Mid_index] < aim:
return find(l,aim,start=Mid_index+1,end=end)
elif l[Mid_index] == aim:
return Mid_index
else:
return '找不到!'
else:
return '比列表最大数都大,找不到!'
l = [2,3,5,10,15,16,18,22,26,30,32,35,41,42,43,55,56,66,67,69,72,76,82,83,88]
ret = find(l,411)
ret1 = find(l,44)
ret2 = find(l,66)
ret3 = find(l,67)
print(ret,ret1,ret2,ret3)
运行结果:
比列表最大数都大,找不到! 找不到! 17 18
最新文章
- JS创建对象篇
- Creating a radius based VPN with support for Windows clients
- 使用FindFirstFile,FindNextFile遍历一个文件夹
- Cortex-M3/4的Hard Fault调试方法
- ASP.NET中使用 Response.Write(";<;script>;alert(&#39;****&#39;);<;/script>;";);后CSS界面发生变化的解决方法 (经验证)
- 把NodeJS注册成Windows服务
- 【django】request
- MySQL sql_slave_skip_counter
- 地下迷宫(bfs输出路径)
- Hibernate缓存、组件、继承映射
- CGAffineTransformMake(a,b,c,d,tx,ty) 矩阵运算的原理 (转载)
- List用法
- javascript实现函数的默认參数值方法
- 使用Visifire+ArcGIS API for Silverlight实现Graphic信息的动态图表显示
- 利用python基于微博数据打造一颗“心”
- BZOJ 1303: [CQOI2009]中位数图【前缀和】
- Python中的取模运算
- 建模:通过ES平铺关系型数据库多表的数据
- [转]xml解析工具的效率比较QDomDocument、TinyXml-2、RapidXml、PugiXml
- 深入理解java虚拟机---java虚拟机内存管理(六)
热门文章
- 归档和解档配合NSFile存储数据
- 2018-8-10-VisualStduio-打断点调试和不打断点调试有什么区别
- digitalpersona 开发(系统托盘,监听指纹扫描)
- 数据库MySQL--分组查询
- Excel宏开发之合并单元格
- bzoj 1196: [HNOI2006]公路修建问题(二分+贪心)
- error C2712: Cannot use __try in functions that require object unwinding
- 372 在O(1)时间复杂度删除链表节点
- Java笔记 - GUI编程
- python的__file__和__name__变量