Coda prioritaria usando la pila
-
29-09-2020 - |
Domanda
può creare una coda prioritaria utilizzando Stacks, in modo tale che la coda prioritaria abbia la stessa complessità per ogni operazione. Potrebbe essere fatto?Se é cosi, come?Se no, qual è la soluzione migliore che può essere fatta?
Ogni operazione di uno stack usando un array è $ o (1) $ considerando che quasi tutte le operazioni di coda prioritaria è $ O (logn) $ . Un'implementazione può essere eseguita utilizzando $ 2D $ pile, ciascun elementi della pila è di nuovo una pila. Quando il primo elemento dello stack principale è il primo elemento degli altri pile. L'operazione Dequeue prenderà $ o (n) $ come è lifo e la coda prioritaria è FIFO.
Soluzione
pensa a questo.È possibile ordinare un array aggiungendo tutti gli elementi a una coda prioritaria, quindi rimuovendo gli elementi in ordine ordinato.
Se è possibile eseguire una coda prioritaria in costante tempo, è possibile ordinare in tempo lineare.Ma non puoi.