Python中的bisect
来源:互联网 发布:911事件知乎 编辑:程序博客网 时间:2024/05/16 16:22
bisect是Python中针对数组的插入及排序操作的库,它有insort_right、bisect_right、insort_left、bisect_left,这几个方法。
其中insort_right和insort__left都是向参数列表中插入参数。
以insort_right(a,x,lo=0,hi=None)为例:
if lo < 0: raise ValueError('lo must be non-negative') if hi is None: hi = len(a)while lo < hi: mid = (lo+hi)//2 if a[mid] < x: lo = mid+1 else: hi = mid a.insert(lo, x)
它通过二分法的方式,找到x在列表a中的位置,并在它右面插入了x。同样insort_left也是同一个原理。
bisect_left和bisect_right则是判断x在列表a中的位置,之所以为什么开发者给他起这个名字,就是因为它采用的查找方法不一样。
if lo < 0: raise ValueError('lo must be non-negative') if hi is None: hi = len(a) while lo < hi: mid = (lo+hi)//2 if a[mid] < x: lo = mid+1 else: hi = mid return lo
bisect_left也是通过二分法的方式索引x在列表a中的位置。bisect_right我也就不再赘述了。总之,得到的结果是一样的。
阅读全文
1 0
- Python中的bisect
- python中的bisect模块
- python bisect module
- python bisect模块
- python 之bisect
- python---bisect模块
- Python bisect模块
- python 标准库bisect
- Python开发--bisect
- python之bisect模块
- python bisect模块
- python-bisect/np-searchsorted
- python: bisect库
- Python模块——bisect
- Python bisect - array bisection library
- python bisect, re以及heapq
- python的排序模块bisect
- python的排序模块bisect
- Java十一周作业
- strlen()函数细节问题
- 高性能服务器编程——多进程编程
- Magic Powder
- Caffe学习笔记6--前4课知识点备忘
- Python中的bisect
- Angular 4入门教程系列:12:TypeScript:类与接口
- Spring实战-装配bean
- 软件工程(C编码实践篇)学习总结
- H01 C++面向对象高级编程下作业解析
- 二. DrawerLayout侧拉 主方法内
- 剑指offer 用两个栈实现队列
- 判断网络
- HDU-1231 最大连续子序列 (浙大计算机研究生复试上机考试-2005年 线性dp)