Skip to content

bisect模块

在Python中,如果我们想维持一个已排序的序列,可以使用内置的bisect模块,例如:

python
import bisect

# 用于处理已排序的序列
inter_list = []
bisect.insort(inter_list, 3)
bisect.insort(inter_list, 2)
bisect.insort(inter_list, 5)
bisect.insort(inter_list, 1)
bisect.insort(inter_list, 6)
print(inter_list)	# [1, 2, 3, 5, 6]
print(bisect.bisect(inter_list, 3))		# 3

bisect内部使用二分查找算法来添加数据

默认使用insort_right函数(如果有两个相同数据,新数据添加到老数据右边),而insort_right内部调用的是bisect_right函数来实现二分查找算法

image-20240512145030407

如果需要查找,可以使用bisect函数,默认调用的也是bisect_right函数

部分内容网络所学,如有侵权可联系QQ:3127993395