← retour aux snippets

bisect: insort pour maintenir une liste triée

Insérer en O(log n) la position et maintenir l'ordre trié.

python algorithms #bisect#sorted#insort

objectif

Insérer en O(log n) la position et maintenir l’ordre trié.

code minimal

import bisect
data = [1,3,5]
bisect.insort(data, 4)
print(data == [1,3,4,5])  # attendu: True

utilisation

import bisect
idx = bisect.bisect_left([10,20,30], 25)
print(idx == 2)

variante(s) utile(s)

import bisect
data = []
for x in [5,1,3]: bisect.insort(data, x)
print(data == [1,3,5])

notes

  • bisect_left/droite contrôlent la position en cas d’égalité.
  • Pratique pour files de priorité custom ou caches ordonnés.