#!/usr/bin/env python
# encoding: utf-8
import bisect
import sys
#将一个元素插入到一个有序列表的合适位置
#使用这个模块的函数前先确保操作的列表是已排序的。
list=[2,1,3,4,2,4,6,6,62,1]
list.sort()
new_list=bisect.insort(list,7)#后面的这个参数表示 元素7应该出现在列表的位置,
left_list=bisect.insort_left(list,7)#后面的这个参数表示 元素7应该出现在列表的位置,如果重复插入在左边
right_list=bisect.insort_right(list,7)#后面的这个参数表示 元素7应该出现在列表的位置,如果重复插入在右边
left_postion=bisect.bisect_left(list,7)
right_postion=bisect.bisect_right(list,7)#返回出现数字的右侧位置,如果不存在则获取应该插入到列表的右侧位置(一般用于原列表有该数据的时候)
#
# print(list) #结果[1, 1, 2, 2, 3, 4, 4, 6, 6, 7, 62]
#
# print(new_list) #insort方法不会产生新的列表,输出为None
# print(left_list) #insort_left方法不会产生新的列表,输出为None
# print(right_list) #insort_left方法不会产生新的列表,输出为None
print(right_postion)
# bisect_left 和 bisect_right 函数,该函数用入处理将会插入重复数值的情况,返回将会插入的位置

  相当于下面的代码

#!/usr/bin/env python
# encoding: utf-8
import math
#给定一个list用二分法查出现的位置,前提排好序了
def binary_search_loop(lst,value):
low,hight=0,len(lst)-1 #列表中元素的坐标
while low<=hight:
mid=math.floor((low+hight)/2) #向下取整
#如果中间这个数小于指定数字,则网上查找
if lst[mid]<value:
low=mid+1
elif lst[mid]>value:
hight=mid-1
else:
return mid
return None print(binary_search_loop([1,2,3,4,5,6,7,8,9,11],8))

  

关于二分法查找的知识,点击我

python bisect模块二分法查找的更多相关文章

  1. Python引用模块和查找模块路径

    模块间相互独立相互引用是任何一种编程语言的基础能力.对于"模块"这个词在各种编程语言中或许是不同的,但我们可以简单认为一个程序文件是一个模块,文件里包含了类或者方法的定义.对于编译 ...

  2. Python入门之Python引用模块和查找模块路径

    #这篇文章主要介绍了Python引用模块和Python查找模块路径的相关资料,需要的朋友可以参考下 模块间相互独立相互引用是任何一种编程语言的基础能力.对于“模块”这个词在各种编程语言中或许是不同的, ...

  3. python基础--模块的查找顺序以及相对导入和绝对导入

    模块:模块是一系列功能的结合体 模块的来源: 内置的模块(python解释器自带的) 第三方(开发者编写的模块) 自定义的模块(自己编写的模块) 模块的四种表现形式: 1.使用python编写的py文 ...

  4. python --- 14 递归 二分法查找

    一.递归 1.函数自己调用自己 2.官方说明最大深度1000,但跑不到1000,要看解释器, 实测998 3.使⽤递归来遍历各种树形结构 二.    二分法查找 掐头结尾取中间 ,  必须是有序序列 ...

  5. python bisect模块

    转发:http://www.cnblogs.com/skydesign/archive/2011/09/02/2163592.html 先看看模块的结构: 前面五个属性大家感兴趣可以打出来看看数值,这 ...

  6. python的算法:二分法查找(2)--bisect模块

    Python 有一个 bisect 模块,用于维护有序列表.bisect 模块实现了一个算法用于插入元素到有序列表.在一些情况下,这比反复排序列表或构造一个大的列表再排序的效率更高.Bisect 是二 ...

  7. python bisect 排序模块 二分查找与 bisect 模块

    python 3.6.5 import bisect bisect_list=dir(bisect)print(bisect_list)bisect_list = ['__builtins__', ' ...

  8. 二分查找与 bisect 模块

    Python 的列表(list)内部实现是一个数组,也就是一个线性表.在列表中查找元素可以使用 list.index() 方法,其时间复杂度为O(n).对于大数据量,则可以用二分查找进行优化.二分查找 ...

  9. python笔记之bisect模块

    python笔记之bisect模块 当你决定使用二分搜索时,这个模块会给你带来很大的帮助. 例子 import bisect L = [1,3,3,6,8,12,15] x = 3 #在L中查找x,x ...

随机推荐

  1. K-均值聚类——电影类型

    K-均值聚类 K-均值算法试图将一系列样本分割成K个不同的类簇(其中K是模型的输入参数),其形式化的目标函数称为类簇内的方差和(within cluster sum of squared errors ...

  2. 十一、mysql老是停止运行该怎么解决

    mysql老是停止运行该怎么解决 你可能还会遇到无法启动mysql的错误 解决方法如下:      

  3. 15,redis基础学习

    redis Redis 是一个开源(BSD许可)的,内存中的数据结构存储系统,它可以用作数据库.缓存和消息中间件 yum安装redis 1.yum安装 #前提得配置好阿里云yum源,epel源 #查看 ...

  4. 独立开发unity2d游戏的问答群

    129443731 有志独立开发游戏的,只讨论最新的unity2d技术的.群里面主要已问答为主,喜欢聊天的就别加群了,灌水多了会被t.希望能对unity2d比较了解的已及喜欢学习的人加入.

  5. 《Cracking the Coding Interview》——第5章:位操作——题目4

    2014-03-19 06:15 题目:解释(n & (n - 1)) == 0是什么意思? 解法:n&n-1是去掉最低位‘1’的方法.根据运算符优先级,貌似用不着加那个括号,但位运算 ...

  6. DOS程序员手册(六)

    217页 程序的主要部分后面是主程序所使用的许多小的扩充内存功能.将这些功能组合起 来这些功能便覆盖了扩充内存的操作,尽管还可能想向它们添加错误检查. 程序所包含的函数有: emmtest   检验内 ...

  7. Appium与python自动测试环境及demo详解

    App--UI自动化这种高端的名词已经被越来越多的人所高呼,可是从实际角度来讲,个人觉得还是有点鸡肋,不如接口自动化敏捷度高,工作量 也是接口自动化的好几倍.但是,[划重点了]  在技术时代中,作为测 ...

  8. [译]16-spring基于注解的配置元数据

    从spring2.5起spring框架开始支持java注解的配置元数据.所以除了使用xml配置文件来描述bean的装配之外,你还 可以使用基于java注解的配置元数据来完成同样的功能. spring框 ...

  9. 普通用户操作tomcat项目时报:Neither the JAVA_HOME nor the JRE_HOME environment variable is defined At least one of these environment variable is needed to run this program

    在使用普通用户更新tomcat项目适合出现这个信息,Neither the JAVA_HOME nor the JRE_HOME environment variable is defined At ...

  10. 整合S2SH框架

    S2SH框架(Struts2,Spring,Hibernate)整合 Struts2.Hibernate和Spring.其中在Struts2部分主要为MVC设计思想,Struts2的处理流程及配置,S ...