Le moyen le plus simple était d'utiliser ** PriorityQueue ** ou ** bisect **, qui prend en charge la dichotomie. J'aimerais savoir comment définir la fonction de comparaison par moi-même (si cela peut être fait) et comment sont les performances.
bisect
from bisect import insort
q = []
insort(q, 1)
insort(q, 10)
insort(q, 2)
insort(q, 5)
insort(q, 3)
print(q) # [1, 2, 3, 5, 10]
PriorityQueue
import Queue as Q
q = Q.PriorityQueue()
q.put(1)
q.put(10)
q.put(2)
q.put(5)
q.put(3)
# 1, 2, 3, 5,Sortie par ordre de 10
while q.qsize() > 0:
print(q.get())
Recommended Posts