#!/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. MySQL常用命令基础操作

    MySQL启动与更改密码 mysql启动基本原理说明: /etc/init.d/mysqld是一个shell启动脚本,启动后最终会调用,mysqld_safe脚本,最后调用mysqld服务启动mysq ...

  2. wlr快捷键

    ref:http://www.cnblogs.com/zhangyang/archive/2011/07/22/2113856.html   Windows Live Writer提供了许多方便的快捷 ...

  3. 20145202马超 《Java程序设计》 实验一 实验报告

    一.实验内容 1.使用JDK编译.运行简单的Java程序: 2.使用Eclipse 编辑.编译.运行.调试Java程序. 二.实验内容 1.完成在Windows环境下对IDEA的配置: 2.实现求正整 ...

  4. PHP.18-图片等比例缩放

    图片等比例缩放 自定义函数ImageUpdateSize($pricname, $maxx, $maxy, $pre) 1.$pricname:被缩放的图片源(路径):2.$maxx,$maxy:缩放 ...

  5. HTML标准开头

    <!doctype html> <html>   <head> <meta charset="utf-8"> <title&g ...

  6. 剑指Offer - 九度1390 - 矩形覆盖

    剑指Offer - 九度1390 - 矩形覆盖2014-02-05 23:27 题目描述: 我们可以用2*1的小矩形横着或者竖着去覆盖更大的矩形.请问用n个2*1的小矩形无重叠地覆盖一个2*n的大矩形 ...

  7. tomcat启动后服务访问404

      .  解决办法: 在tomcat文件中有个work文件夹.其中,tomcat属于admin用户,work属于 admin用户 ,启动服务由admin用户启动. 但是发现work文件下的目录权限属于 ...

  8. Struts2+DAO层实现实例01——搭建Struts2基本框架

    实例内容 利用Strust2实现一个登陆+注册功能的登陆系统. 实现基础流程:

  9. asp.net 条码 一维条码 生成, 一共有32中格式类型

    想用asp.net 实现条码功能,网上找了代码都不全. 终于找到了一个非常全的DLL 是winForm的,原以为不能用在WEB 上结果 可以使用. 首先,引用 DLL 不必说了,下面是 使用设置.还有 ...

  10. Hash表模板

    namespace Hash { ; ; struct adj { ll nxt,v,num,val; }e[N]; ll head[H],ecnt=; void init() { ecnt=; me ...