On Monday, 25 October 2021 at 04:49:12 UTC, mw wrote:
Hi,

https://dlang.org/phobos/std_container_binaryheap.html

The binary heap induces structure over the underlying store such that accessing the largest element (by using the front property) is a Ο(1) operation.

I'm wondering what's the most efficient (in terms of both speed and memory usage) way to implement std.container.binaryheap.back()? i.e accessing the smallest element.

Has anyone done this before?

Thanks.

I didn't look at the implementation, but the implementations I have looked at are backed by an array (a random access container would do). If so you need to find the min of elements from the largest "one less than a power of two" less than the size of the heap up to the size of heap.

However, perhaps an alternative data struct would be better? See e.g. https://en.m.wikipedia.org/wiki/Min-max_heap

 On Monday, 25 October 2021 at 04:49:12 UTC, mw wrote:

Reply via email to