首页 > TAG信息列表 > insort
用bisect来管理已排序的序列
注意这个已排序的修饰 bisect模块重要包含两个主要函数,bisect和insort 这两个函数都利用了二分查找算法,所以速度比我们平时用的一些方法快; bisect函数 from bisect import bisect a_list = [1, 3, 5, 7, 9] position = bisect(a_list, 2) print(position) # 1 # 注意,这个poBisect in Python
bisect — Array bisection algorithm This module provides support for maintaining a list in sorted order without having to sort the list after each insertion. For long lists of items with expensive comparison operations, this can be an improvement over the04.3 bisect可维护序列
代码 bisect 有用二分查找实现,故效率挺高,但是需要的是升序的有序序列 # 可维护序列 import bisect from collections import deque # deque 队列 # 维护已排序的序列-升序 # 二分查找 # 创建一个队列 inter_list = deque() # insort 插入数据 bisect.insort(inter_list, 3) bisPython3标准库:bisect维护有序列表
1. bisect维护有序列表 bisect模块实现了一个算法来向列表中插入元素,同时仍保持列表有序。 1.1 有序插入 下面给出一个简单的例子,这里使用insort()按有序顺序向一个列表中插入元素。 import bisect # A series of random numbers values = [14, 85, 77, 26, 50, 45, 66, 79, 10Python的bisect模块
Python的列表(list)类型内部是一个线性表,在线性表中查找元素复杂度为O(N),即调用list.index()的复杂的是O(N)。当数据量较大时,应该使用二分查找优化,二分查找范围每次缩小一般,复杂度为log(N),数据量越大速度差距越明显。 bisect模块就是基于二分实现的,二分查找要求列表是有序的,bisect