#二分查找
'''
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

最新文章

  1. JS创建对象篇
  2. Creating a radius based VPN with support for Windows clients
  3. 使用FindFirstFile,FindNextFile遍历一个文件夹
  4. Cortex-M3/4的Hard Fault调试方法
  5. ASP.NET中使用 Response.Write(&quot;&lt;script&gt;alert(&#39;****&#39;);&lt;/script&gt;&quot;);后CSS界面发生变化的解决方法 (经验证)
  6. 把NodeJS注册成Windows服务
  7. 【django】request
  8. MySQL sql_slave_skip_counter
  9. 地下迷宫(bfs输出路径)
  10. Hibernate缓存、组件、继承映射
  11. CGAffineTransformMake(a,b,c,d,tx,ty) 矩阵运算的原理 (转载)
  12. List用法
  13. javascript实现函数的默认參数值方法
  14. 使用Visifire+ArcGIS API for Silverlight实现Graphic信息的动态图表显示
  15. 利用python基于微博数据打造一颗“心”
  16. BZOJ 1303: [CQOI2009]中位数图【前缀和】
  17. Python中的取模运算
  18. 建模:通过ES平铺关系型数据库多表的数据
  19. [转]xml解析工具的效率比较QDomDocument、TinyXml-2、RapidXml、PugiXml
  20. 深入理解java虚拟机---java虚拟机内存管理(六)

热门文章

  1. 归档和解档配合NSFile存储数据
  2. 2018-8-10-VisualStduio-打断点调试和不打断点调试有什么区别
  3. digitalpersona 开发(系统托盘,监听指纹扫描)
  4. 数据库MySQL--分组查询
  5. Excel宏开发之合并单元格
  6. bzoj 1196: [HNOI2006]公路修建问题(二分+贪心)
  7. error C2712: Cannot use __try in functions that require object unwinding
  8. 372 在O(1)时间复杂度删除链表节点
  9. Java笔记 - GUI编程
  10. python的__file__和__name__变量