zoukankan      html  css  js  c++  java
  • python数组查找算法---bisect二分查找插入

    1 实例

    这个模块只有几个函数,

    一旦决定使用二分搜索时,立马要想到使用这个模块 

    [python] view plaincopy
     
     
     
    1. import bisect  
    2.   
    3. L = [1,3,3,6,8,12,15]  
    4. x = 3  
    5.   
    6. x_insert_point = bisect.bisect_left(L,x)  #在L中查找x,x存在时返回x左侧的位置,x不存在返回应该插入的位置..这是3存在于列表中,返回左侧位置1  
    7. print x_insert_point  
    8.   
    9. x_insert_point = bisect.bisect_right(L,x)  #在L中查找x,x存在时返回x右侧的位置,x不存在返回应该插入的位置..这是3存在于列表中,返回右侧位置3  
    10.   
    11. print x_insert_point  
    12.   
    13. x_insort_left = bisect.insort_left(L,x)  #将x插入到列表L中,x存在时插入在左侧  
    14. print L  
    15.   
    16. x_insort_rigth = bisect.insort_right(L,x) #将x插入到列表L中,x存在时插入在右侧      
    17.   
    18. print L  


    结果:

    1
    3
    [1, 3, 3, 3, 6, 8, 12, 15]
    [1, 3, 3, 3, 3, 6, 8, 12, 15]

    实际使用中

    [python] view plaincopy
     
     
     
    1. bisect.insort_left与 bisect.insort_right 差别不大,作
     
     
     
    转自:http://blog.csdn.net/xiaocaiju/article/details/6975714
     
    2  bisect模块
    Bisect模块提供的函数有:
    (1)查找
    bisect.bisect_left(a,x, lo=0, hi=len(a)) :
    查找在有序列表a中插入x的index。lo和hi用于指定列表的区间,默认是使用整个列表。
    bisect.bisect_right(a,x, lo=0, hi=len(a))
    bisect.bisect(a, x,lo=0, hi=len(a))
    这2个和bisect_left类似,但如果x已经存在,在其右边插入。
    (2)插入
    bisect.insort_left(a,x, lo=0, hi=len(a))
    在有序列表a中插入x。如果x已经存在,在其左边插入。返回值为index。 和a.insert(bisect.bisect_left(a,x, lo, hi), x) 的效果相同。
    bisect.insort_right(a,x, lo=0, hi=len(a))
    bisect.insort(a, x,lo=0, hi=len(a))
    和insort_left类似,但如果x已经存在,在其右边插入。
     
    可以函数可以分2类,bisect*,用于查找index。Insort*用于实际插入。默认重复时从右边插入。实际常用的估计是insort。
  • 相关阅读:
    Sprng Data JPA与hibernate的关系
    Exception in thread "main" java.io.FileNotFoundException: d:xxx.txt (拒绝访问。)
    Telnet测试BIO Socket
    计算机网络篇
    Postman测试接口发现时间少8个小时?添加这两行代码就解决!
    匿名内部类
    解决线程安全的三种方法
    equals和hashcode的区别
    postman测试springsecurity 登录鉴权,获取Cookie后进行其他接口测试
    (链表)求相交链表交点
  • 原文地址:https://www.cnblogs.com/zknublx/p/9668708.html
Copyright © 2011-2022 走看看