ce pseudo-Tenir compte code:Lors de l'ajout de valeurs à une file d'attente prioritaire, à quel moment exactement les valeurs sont-elles triées?
PriorityQueue <Integer> pq = new PriorityQueue(new Comparator()
{
public int compare(Object o1, Object o2)
{
Integer e1 = (Integer)o1;
Integer e2 = (Integer)o2;
if (e1 > e2) {return -1;}
if (e2 > e1) {return 1;}
return 0;
}
});
pq.add(4);
pq.add(7);
pq.add(5);
pq.add(2);
pq.add(9);
Maintenant, je me demande, quand exactement pendant la durée d'exécution ne la file d'attente exécuter la méthode compare()? Je suppose qu'il suivrait cet ordre:
i) D'abord les chiffres 4,7,5,2,9 sont ajoutés à la file d'attente dans cet ordre
ii) Ensuite, la file d'attente prioritaire utilise la méthode comparer à trier les valeurs
En d'autres termes, les valeurs sont d'abord insérées dans la file d'attente. Ensuite, ils sont triés. Cette pensée est-elle correcte? Ou les valeurs sont-elles triées lorsqu'elles sont ajoutées à la file d'attente?
Quelle langue est-ce? Quel cadre utilisez-vous? –
Droit, mon mauvais. C'est Java – User95
Les valeurs doivent être triées à mesure qu'elles sont ajoutées. Sinon, comment la file d'attente devrait-elle savoir que vous avez fini d'ajouter des éléments? – JimmyB