I am looking for an implementation of a priority queue that uses constant double values as priorities for the key. I believe that this, if implemented properly, can be faster than the default PriorityQueue implementation with a flexible comparator. A decreaseKey operation (=decreasing the priority of an element already in the queue) is not necessary.
I have found an implementation from the NLP group in Stanford, but they claim that it’s twice as slow as the original implementation. Is there a PQ implementation out there that can outperform the default PriorityQueue for our use case?
We ended up implementing our own heap structure. A d-ary heap with an optimized
remove()operation turned out to perform reasonably well, especially on a loaded shared-memory machine.