中間平分 - Python 中的陣列中間平分演算法
在長列表中每次插入後執行排序操作在時間消耗方面可能很昂貴。中間平分模組確保列表在插入後自動排序。出於此目的,它使用中間平分演算法。該模組具有以下函式
bisect_left()
此方法找到用於保持排序順序的列表中給定元素的插入點。如果它已存在於列表中,則插入點將在任何現有項之前(左邊)。返回值可以用作 list.insert() 的第一個引數
bisect_right()
此方法與 bisect_left() 類似,但返回的插入點在列表中任何現有項的後面(右邊)。
bisect.insort_left()
此方法按排序順序在 a 中插入給定值。這等價於 a.insert(bisect.bisect_left(a, x, lo, hi), x)
bisect.insort_right()
bisect.insort()
兩個方法都類似於 insort_left(),但在列表中插入給定值在相同值的任何現有項後面。
示例
>>> nums = [45,21,34,87,56,12,5,98,30,63] >>> nums.sort() >>> nums [5, 12, 21, 30, 34, 45, 56, 63, 87, 98] >>> import bisect >>> p = bisect.bisect_left(nums,50) >>> p 6 >>> nums.insert(p,50) >>> nums [5, 12, 21, 30, 34, 45, 50, 56, 63, 87, 98] >>> bisect.insort(nums, 29) >>> nums [5, 12, 21, 29, 30, 34, 45, 50, 56, 63, 87, 98]
廣告
資料結構
網路
關係型資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP