# 二分法查找主要的作用就是查找元素

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 二分法查找相关推荐

  1. python二分法查找时间点_Python 二分法查找

    # 二分法查找主要的作用就是查找元素 lst = [1,3,5,7,12,36,68,79] # 数据集 百万级数据 num = int(input("请输入你要查找的元素信息:" ...

  2. python二分法查找时间点_python有序查找算法:二分法

    二分法是一种快速查找的方法,时间复杂度低,逻辑简单易懂,总的来说就是不断的除以2除以2... 但是需要注意:待查找的序列区间单调有序 例如需要查找有序数组arr里面的某个关键字key的位置,那么首先确 ...

  3. python字典查找元素_python字典获取元素

    广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! 环境依赖python 2.7安装sdk安装 sdk 的方式有两种:pip 安装和 ...

  4. python查看列表有多少元素_python 统计列表中元素的数量

    一.统计列表中不同元素的个数 这个需求是统计列表中不同元素有几个,由于列表是允许存在重复元素的,但是集合却不允许存在重复元素,所以可以将list转换为set,然后求长度. list=[1,2,1,2, ...

  5. python字典怎么增加元素_Python字典(dict)增加元素

    Python字典(dict)增加元素 在 如果 key 不存在,那么会将 key 添加进字典,并将该 key 的值设置为 value. 字典增加元素详解 语法 dict[key] = value 参数 ...

  6. python二分法查找程序_Python程序查找最大EVEN数

    python二分法查找程序 Input N integer numbers and we have to find the maximum even number. 输入N个整数,我们必须找到最大的偶 ...

  7. python二分法查找程序_Python程序查找地板划分

    python二分法查找程序 When we divide a number by another number – division operator (/) return quotient it m ...

  8. 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) ...

  9. python如何在列表中查找元素位置_查找元素在list中的位置以及折半查询

    问题 查找某个值在list中的位置 解决思路 能够用折半查询的方法解决此问题. 解决(Python) #! /usr/bin/env python #coding:utf-8 #折半查找某个元素在li ...

最新文章

  1. LeetCode Valid Parentheses(判断括号是否匹配)
  2. python pip安装模块失败的原因
  3. maven指定项目的构建、打包和tomcat插件的pom.xml配置
  4. 使用maven编译YCSB0.1.4对cassandra进行性能测试
  5. C# Image 、 byte[] 、Bitmap之间的转化
  6. python webdriver api-操作日期元素的方法
  7. BASIC-6 杨辉三角形
  8. android 仿直播点赞,Android-DivergeView
  9. 2017IEC计算机第二次作业
  10. java 注释工具栏_eclipse/intellij idea 查看java源码和注释方法
  11. UE4之windows.h冲突
  12. 对不起,离开平台,你什么都不是
  13. 软件设计模式与体系结构 期末课后题
  14. 学习笔记—前端移动端开发知识点总结
  15. python 椭圆曲线加密_椭圆曲线加密算法
  16. Word插入图目录,表目录
  17. JetBrain Rider使用技巧(持续更新)
  18. Android程序水印效果
  19. 计算机网络ping超时,ping请求超时怎么回事?ping请求超时的解决方法
  20. 文件下载(导出)功能,fileDownload。

热门文章

  1. 如何下载 blob 加密https://视频
  2. D3 二维图表的绘制系列(七)堆叠面积图
  3. avcodec_decode_video2函数
  4. 基于 HTML5 WebGL 智能城市的模拟运行
  5. voltdb join 报错
  6. Selenium自动化测试之Selenium IDE
  7. MediaCodec 完成PCM编码成AAC
  8. 软件工程教学作业 汇总
  9. JZOJ_5845. 西西算数
  10. containskey java_Java Hashtable containsKey()方法与示例