2009-07-01 30 views
6

Ho un set di dati e voglio trovare gli elementi più grandi e più piccoli (più volte), qual è il modo migliore per farlo?Coda priorità doppia priorità

Per chiunque sia interessato all'applicazione, sto sviluppando un livello di dettaglio del sistema e ho bisogno di trovare gli elementi con l'errore di spazio dello schermo più grande e più piccolo, ovviamente ogni volta che suddivido/unisco un oggetto devo inserirlo nella coda ma ogni volta che la telecamera sposta l'intero set di dati cambia, quindi potrebbe essere meglio usare solo una lista ordinata e posticipare l'aggiunta di nuovi elementi fino alla prossima volta che ordino (poiché accade così spesso)

risposta

5

Puoi usare un Min-Max Heap come descritto nel documento Min-Max Heaps and Generalized Priority Queues:

una semplice implementazione di doubl e ha terminato le code di priorità è presentato . La struttura proposta, chiamata heap min-max, può essere costruita nel tempo lineare ; a differenza degli heap convenzionali , consente di eseguire sia FindMin che FindMax nel tempo costante ; Insert, DeleteMin e Le operazioni DeleteMax possono essere eseguite in tempo logaritmico.

+0

Aha è perfetto! – Martin

Problemi correlati