python的常見數(shù)據(jù)結(jié)構(gòu)
https://www.cnblogs.com/niuyeji648/p/14772913.html
二分查找
https://blog.csdn.net/qq_34914551/article/details/100062973
bisect是python內(nèi)置模塊事秀,用于有序序列的插入和查找佑菩。
- 查找: bisect(array, item)
- 插入: insort(array,item)
查找
import bisect
a = [1,4,6,8,12,15,20]
position = bisect.bisect(a,13)
print(position) # 用可變序列內(nèi)置的insert方法插入
a.insert(position,13)
print(a)
輸出:
5
[1, 4, 6, 8, 12, 13, 15, 20]
插入
使用bisect.insort痊班,比bisect先查找該插入哪個位置缰儿,再用insert方法插入更加快速的方法
import bisect
a = [1,4,6,8,12,15,20]
bisect.insort(a,13)
print(a)
[1, 4, 6, 8, 12, 13, 15, 20]
NOTE
bisect還有bisect_left,insort_left的用法,和不帶left的用法的區(qū)別是:當插入的元素和序列中的某一個元素相同時,該插入到該元素的前面(左邊类嗤,left),還是后面(右邊)裳瘪;如果是查找土浸,則返回該元素的位置還是該元素之后的位置。