все Python 3bisectфункция
bisect.insort_left()
вставка
Вставляет x в отсортированный список ПЕРЕД равными элементами, сохраняя порядок. Поиск места O(log n), но сама вставка O(n) из-за сдвига.
Синтаксис
bisect.insort_left(a, x)
Вставка линейна, поэтому собирать список из n элементов последовательными insort_left — это O(n^2); дешевле накопить всё и один раз вызвать sort(). Отличие от insort_right проявляется только тогда, когда среди равных по сравнению элементов есть различимые объекты: left ставит новый перед ними, ломая порядок поступления, right — после.
Примеры
import bisect
a = [1, 3, 4, 5]
bisect.insort_left(a, 3)
a # → [1, 3, 3, 4, 5]
См. также
Открыть в полном глоссарииdocs.python.orgСообщить о неточности