二分法原理及实现

  • 二分法原理概述
  • python实现代码

二分法原理概述

简单粗暴一点理解二分法

  1. 将数据有序排列:先将一个数据集进行有序排列(可根据某种数值的大小降序或升序<当然排序的规则可根据业务规则自定义>,前提是需要查找的数据具备该规则同样的属性);

  2. 数据分半:就是将排序好的数据集切分成大致相等的两份数据;

  3. 查找数据:把排序好的数据拆分为个数大致相等的两半,因为有排序,查找的时候先和其中一半数据种的最大或者最小的数进行比较来断定要查找的数据是否会包含被分割后的一半数据种,然后在满足判定条件的数据集中一次获取数据进行比对直到找到数据或者比较完所有数据返回没有该数据,

python实现代码

# -*- coding: utf-8 -*-
import  os
import sysdef dichotomySreach(list,val):passbegin = 0end = len(list) -1while begin <= end :mid = (begin + end) // 2 #向下取整if val == list[mid]:return midelif val < list[mid]:end = mid -1elif val > list[mid]:begin = mid + 1return Noneif __name__ == "__main__":# passprint(os.path.basename(__file__))print(os.path.abspath(__file__))print(__file__)print(sys.argv[0])list =[1, 2 ,3 ,5 ,66 ,77 , 98, 100, 453,676,712,774]print(dichotomySreach(list,98))print(dichotomySreach(list,1))print(dichotomySreach(list,100))print(dichotomySreach(list,200))if not dichotomySreach(list,200):print("200 not in list")

运行结果

dichotomy.py
L:\DEV\XYD文件集合\电子字典设计文档\A_DictPick\dichotomy.py
L:/DEV/XYD文件集合/电子字典设计文档/A_DictPick/dichotomy.py
L:/DEV/XYD文件集合/电子字典设计文档/A_DictPick/dichotomy.py
6
0
7
None
200 not in list

二分法查找(dichotomy)--python实现相关推荐

  1. 数据结构之Python实现二分法查找dichotomy

    """ 定义一个数组780 从里面查89 """def dichotomy(list, item):low = 0high = len(li ...

  2. 二分法查找--Dichotomy search

    二分法要求被查求的元素有序\ package aaaaa;public class BinarySearch {public static void main(String[] args) {int[ ...

  3. python实现二分法查找_python3 二分法查找

    ''' 二分法查找 有序列表 掐头去尾取中间 查找列表中xx在不在列表中,在,则返回索引值 ''' # lst = [1, 4, 6, 8, 9, 21, 23, 26, 35, 48, 49, 54 ...

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

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

  5. python二分法查找程序_查找Python程序的输出| 套装2(基础)

    python二分法查找程序 Program 1: 程序1: a = 10 b = 3 res = a/b print "a/b: ", res res = float(a/b) p ...

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

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

  7. python实现二分法查找_python二分法查找

    下面是一段用Python实现的二分法查找代码#encoding=utf-8 import sys def search2(a,m): low = 0 high = len(a) - 1 while l ...

  8. 微课|中学生可以这样学Python(例8.25):二分法查找

    适用教材: 董付国,应根球.<中学生可以这样学Python>.清华大学出版社,2017. 第8章  常用算法的Python实现 例8.25  二分法查找 京东购买链接:https://it ...

  9. 可自定义匹配规则查找控件_懂Excel轻松入门Python数据分析包pandas(二十八):二分法查找...

    此系列文章收录在公众号中:数据大宇宙 > 数据处理 > E-pd 转发本文并私信我"python",即可获得Python资料以及更多系列文章(持续更新的) 经常听别人说 ...

最新文章

  1. 3.4.3 嵌套查询
  2. JS开发中常用的小技巧
  3. mybatis深入理解(一)之 # 与 $ 区别以及 sql 预编译
  4. JUnit4中使用Hamcrest测试框架的assertThat断言 小实例
  5. Scala基于Akka模拟Spark Master Worker进程间通信(二):Worker定时向Master心跳
  6. 前驱和后驱什么意思_14.98万!造型酷似“保时捷”,后置后驱续航510,这款SUV要火...
  7. 关于多网络时钟的讨论
  8. Oracle-1 / Oracle及PlsqlDeveloper的设置
  9. python自动生成表格_Python自动整理 Excel 表格
  10. 不聊webpack配置,来说说它的原理
  11. 几行Python代码模拟轮盘抽奖游戏
  12. Hibernate 异常:“@OneToOne or @ManyToOne on XXX references an unknown entity: XXX”
  13. jquery SELECT 操作
  14. jQuery具体实例介绍什么时候用ajax,ajax应该在什么地方使用
  15. lua table remove元素的问题
  16. 数据中心空调系统基础知识-制冷量与热量计算
  17. HuaWei ❀ IP源防护概述
  18. UML用例图之关联关系、包含关系、扩展关系、泛化关系详解
  19. 从谷歌(Google)首页变化看互联网十三年风云
  20. Unity3d开发之二十:闪电

热门文章

  1. macunity日志目录_Unity-日志文件
  2. 360email讲堂:中秋佳节邮件营销大放光彩
  3. 全球游戏收入将随着电影电视改编作品的不断增多而达到惊人水平 | 美通社头条...
  4. Excel—使用if(countif())表达式来筛选两个表格中相同的数据
  5. ios swift 纯代码自定义view(控件) XYswitchView
  6. 圣诞节,描述京东 Merry Christmas
  7. 新人学习java导论
  8. 关于android有道词典的修改
  9. EasyTest 接口自动化测试平台 搭建手顺
  10. python找列表中相邻数的个数_利用python求相邻数的方法示例