bisect维护已排序的序列

Posted traditional

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了bisect维护已排序的序列相关的知识,希望对你有一定的参考价值。

#!/usr/bin/env python
# -*- coding:utf-8 -*- 
# author:love_cat

import bisect

# 用来处理已经排序好的序列,升序
# 二分查找

li = []

bisect.insort(li, 3)
bisect.insort(li, 1)
bisect.insort(li, 5)
bisect.insort(li, 8)
bisect.insort(li, 2)
bisect.insort(li, 6)

print(li)
‘‘‘
[1, 2, 3, 5, 6, 8]
‘‘‘
# bisect.insort,默认是insort_right
# 关于insort_right和insort_left的区别
# 就是当我插入一个已经存在的数值,我是插在右边还是左边

# 关于序列,列表只是序列的一种
# 而只要是序列,bisect都可以维护
# 比方说我们换成双端队列
from collections import deque

dq = deque()

bisect.insort(dq, 3)
bisect.insort(dq, 1)
bisect.insort(dq, 5)
bisect.insort(dq, 8)
bisect.insort(dq, 2)
bisect.insort(dq, 6)

print(dq)
‘‘‘
deque([1, 2, 3, 5, 6, 8])
‘‘‘

 

以上是关于bisect维护已排序的序列的主要内容,如果未能解决你的问题,请参考以下文章

python的排序模块bisect

python的排序模块bisect

二分插入bisect

Python数据结构与算法---维护有序列表bisect

Python数据结构与算法---维护有序列表bisect

bisect--维护一个有序的列表