1. 一个增序的列表,查看某一个数值是否在列表中,存在则输出位置;不存在,则插入到列表中,并且返回插入的位置。
- 二分查找前提:
- 二分查找原理:
如,在一个有序列表[1,3,4,9,20]中查找是否存在数据8
文章图片
2.实现代码:
# 一个增序的列表,查看某一个数值是否在列表中,存在则输出位置;不存在,则插入元素到列表中,并且返回插入的位置
def search_insert(nums, target):
# 低位
low = 0
# 高位
high = len(nums) - 1
mid = 0
while low <= high:
mid = int((high + low) / 2)
if target < nums[mid]:
high = mid - 1
elif target > nums[mid]:
low = mid + 1
else:
return mid
# return -1if nums[mid] < target:
nums.insert(mid + 1, target)
return mid + 1
else:
nums.insert(mid, target)
return midif __name__ == '__main__':
a = [1, 3, 4, 9, 20]
goal = 30
result = search_insert(a, goal)
print("位置为:{}".format(result) + ",列表:{}".format(a))
结果:
文章图片
【Python列表查找—二分法の简单应用】
推荐阅读
- 推荐系统论文进阶|CTR预估 论文精读(十一)--Deep Interest Evolution Network(DIEN)
- Python专栏|数据分析的常规流程
- Python|Win10下 Python开发环境搭建(PyCharm + Anaconda) && 环境变量配置 && 常用工具安装配置
- Python绘制小红花
- Pytorch学习|sklearn-SVM 模型保存、交叉验证与网格搜索
- OpenCV|OpenCV-Python实战(18)——深度学习简介与入门示例
- python|8. 文件系统——文件的删除、移动、复制过程以及链接文件
- 爬虫|若想拿下爬虫大单,怎能不会逆向爬虫,价值过万的逆向爬虫教程限时分享
- 分布式|《Python3网络爬虫开发实战(第二版)》内容介绍
- java|微软认真聆听了开源 .NET 开发社区的炮轰( 通过CLI 支持 Hot Reload 功能)