bucketqueue
Bucket queue is a data structure used as a priority queue for nonnegative integer priorities within a known finite range. It consists of an array of buckets, where bucket i holds all elements whose priority (key) equals i. The design allows fast insertion and decrease-key by placing an element into the bucket corresponding to its new priority. A pointer tracks the smallest non-empty bucket, and extracting the minimum advances this pointer to the next non-empty bucket.
One well-known variant is Dial's bucket queue, used with nonnegative integer edge weights in shortest-path algorithms.
Variants and enhancements include circular or multilevel bucket queues to handle larger or changing weight ranges,
Limitations include the requirement of a bounded weight range and nonnegative keys; memory usage grows with