top | item 39938657

(no title)

garrisonj | 1 year ago

Defining a new class is probably the most Ruby way to do it. There are two implementations that define a new class: rb_heap[1] and algorithms[2]. However, algorithms[2] use a Fibonacci heap, which should technically have better time complexity but is slower in practice, and the library pulls in a lot of unnecessary stuff. rb_heap is good, although I think using a symbol to specify if it's a max/min heap is a little strange.

There is something satisfying about using an array like Python. It's very straightforward and doesn't require you to convert back and forth between a queue and a array.

That's an interesting idea to use Queue. I do need random access to implement the binary queue, so I'm not sure if Queue would work.

1. https://github.com/florian/rb_heap 2. https://github.com/kanwei/algorithms

discuss

order

No comments yet.