Python正课46 ——二分法
时间:2020-03-26
本文章向大家介绍Python正课46 ——二分法,主要包括Python正课46 ——二分法使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
本文内容皆为作者原创,如需转载,请注明出处:https://www.cnblogs.com/xuexianqi/p/12572422.html
一:算法
是高效解决问题的办法
用于某种特定的场景
二:算法之 二分法
需求:有一个按照从小到大顺序排列的数字列表,需要从该数字列表中找到我们想要的那个数字,如何做更高效???
方案1:整体遍历,效率太低
nums = [-3,4,7,10,13,21,43,77,89]
find_num = 10
for num in nums:
if num == find_num:
print('find it')
break
方案2:二分法
# 思路
# def binary_search(find_num,列表):
# mid_value = 找列表中间的值
# if find_num > mid_value:
# # 接下来的查找应该是列表的右半部分
# # 列表 = 列表切片 切出右半部分
# # 本身的代码(列表)
# binary_search(find_num,列表)
# elif find_num < mid_value:
# # 接下来的查找应该是列表的左半部分
# # 列表 = 列表切片 切出左半部分
# # 本身的代码(列表)
# binary_search(find_num,列表)
# else:
# print('find it')
nums = [-3, 4, 7, 10, 13, 21, 43, 77, 89]
find_num = 10
def binary_search(find_num, l):
print(l)
if len(l) == 0:
print('找的值不存在')
return
mid_index = len(l) // 2
if find_num > l[mid_index]:
# 接下来的查找应该是列表的右半部分
# 列表 = 列表切片 切出右半部分
l = l[mid_index + 1:]
# 本身的代码(列表)
binary_search(find_num, l)
elif find_num < l[mid_index]:
# 接下来的查找应该是列表的左半部分
# 列表 = 列表切片 切出左半部分
l = l[:mid_index]
# 本身的代码(列表)
binary_search(find_num, l)
else:
print('find it')
binary_search(find_num, nums)
原文地址:https://www.cnblogs.com/xuexianqi/p/12572422.html
- Golang语言关于零值的定义
- 使用Yeoman创建ASP.NET Core项目
- Golang语言捕获panic异常并转化为error
- 在Windows下安装TensorFlow
- JavaFX——(第一篇:介绍篇)
- 自编码器是什么?有什么用?这里有一份入门指南(附代码)
- UWP基础教程 - {x:DeferLoadStrategy}
- UWP基础教程 - 重启应用
- html5打开摄像头
- UWP基础教程 - App多语言支持
- Golang实现Fibonacii的几种算法
- 【译】使用 dotnet watch 开发 ASP.NET Core 应用
- vmware安装ubuntu12.04嵌套安装xen server(实现嵌套虚拟化)
- Golang语言切片slice的线程协程安全问题
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法