python用二分法查找元素_Python 二分法查找
# 二分法查找主要的作用就是查找元素
lst = [1,3,5,7,12,36,68,79] # 数据集 百万级数据
num = int(input("请输入你要查找的元素信息:"))
for el in lst:
if num == el:
print("存在")
break
else:
print("不存在")
len(lst)
# 0 1 2 3 4 5 6 7
# [1,3,5,7,12,36,68,79]
n = 28 # 3
# 规则. 掐头结尾取中间, 必须是有序序列,
# 100000000
# 二分法查找 (需要你明白和掌握)
lst = [1,3,5,7,12,36,68,79]
n = int(input("请输入一个数"))
left = 0
right = len(lst) - 1
while left <= right:
mid = (left + right)//2
if n > lst[mid]:
left = mid + 1
elif n < lst[mid]:
right = mid - 1
else:
print("存在")
break
else:
print("不存在")
# 递归
def func(n, lst):
left = 0
right = len(lst) - 1
if lst != []:
mid = (left + right)//2
if n > lst[mid]:
func(n, lst[mid+1:]) # 改变列表
elif n < lst[mid]:
func(n, lst[:mid])
else:
print("找到了")
return
else:
print("没找到")
return
n = int(input("请输入你要查找的数:"))
func(n, [1,3,5,7,12,36,68,79]) # 78
# 递归二 (需要你明白和掌握)
def func(n, lst, left, right): # 递归找到什么是可以变的. 什么是不可以变的
if left <= right:
mid = (left + right) // 2
if n > lst[mid]:
left = mid + 1
return func(n, lst, left, right)
elif n < lst[mid]:
right = mid - 1
return func(n, lst, left, right) # 递归如果有返回值. 所有调用递归的地方必须写return
else:
print("找到了")
return mid # 难点
else:
print("找不到")
return -1
n = int(input("请输入你要查找的数:"))
lst = [1,3,55,98,37,41,2,5,1,4]
ret = func(n, lst, 0, len(lst)-1) # 78
print(ret)
# 最快的查找
lst = [1,3,55,98,37,41,2,5,1,4]
new_lst = []
for i in range(99):
new_lst.append(0)
for i in lst: # 1,3,55,98
new_lst[i] = 1
print(new_lst)
i = int(input('请输入你要找的数据'))
if new_lst[i] == 0: # 1次
print("不存在")
else:
print("存在")
python用二分法查找元素_Python 二分法查找相关推荐
- python二分法查找时间点_Python 二分法查找
# 二分法查找主要的作用就是查找元素 lst = [1,3,5,7,12,36,68,79] # 数据集 百万级数据 num = int(input("请输入你要查找的元素信息:" ...
- python二分法查找时间点_python有序查找算法:二分法
二分法是一种快速查找的方法,时间复杂度低,逻辑简单易懂,总的来说就是不断的除以2除以2... 但是需要注意:待查找的序列区间单调有序 例如需要查找有序数组arr里面的某个关键字key的位置,那么首先确 ...
- python字典查找元素_python字典获取元素
广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! 环境依赖python 2.7安装sdk安装 sdk 的方式有两种:pip 安装和 ...
- python查看列表有多少元素_python 统计列表中元素的数量
一.统计列表中不同元素的个数 这个需求是统计列表中不同元素有几个,由于列表是允许存在重复元素的,但是集合却不允许存在重复元素,所以可以将list转换为set,然后求长度. list=[1,2,1,2, ...
- python字典怎么增加元素_Python字典(dict)增加元素
Python字典(dict)增加元素 在 如果 key 不存在,那么会将 key 添加进字典,并将该 key 的值设置为 value. 字典增加元素详解 语法 dict[key] = value 参数 ...
- python二分法查找程序_Python程序查找最大EVEN数
python二分法查找程序 Input N integer numbers and we have to find the maximum even number. 输入N个整数,我们必须找到最大的偶 ...
- python二分法查找程序_Python程序查找地板划分
python二分法查找程序 When we divide a number by another number – division operator (/) return quotient it m ...
- python二分法查找数字_Python——二分法查找
#递归实现二分法查找 data=[1,3,6,7,9,12,14,16,17,18,20,21,22,23,30,32,33,35]defbinary_search(dataset,find_num) ...
- python如何在列表中查找元素位置_查找元素在list中的位置以及折半查询
问题 查找某个值在list中的位置 解决思路 能够用折半查询的方法解决此问题. 解决(Python) #! /usr/bin/env python #coding:utf-8 #折半查找某个元素在li ...
最新文章
- LeetCode Valid Parentheses(判断括号是否匹配)
- python pip安装模块失败的原因
- maven指定项目的构建、打包和tomcat插件的pom.xml配置
- 使用maven编译YCSB0.1.4对cassandra进行性能测试
- C# Image 、 byte[] 、Bitmap之间的转化
- python webdriver api-操作日期元素的方法
- BASIC-6 杨辉三角形
- android 仿直播点赞,Android-DivergeView
- 2017IEC计算机第二次作业
- java 注释工具栏_eclipse/intellij idea 查看java源码和注释方法
- UE4之windows.h冲突
- 对不起,离开平台,你什么都不是
- 软件设计模式与体系结构 期末课后题
- 学习笔记—前端移动端开发知识点总结
- python 椭圆曲线加密_椭圆曲线加密算法
- Word插入图目录,表目录
- JetBrain Rider使用技巧(持续更新)
- Android程序水印效果
- 计算机网络ping超时,ping请求超时怎么回事?ping请求超时的解决方法
- 文件下载(导出)功能,fileDownload。