DataStructures.jl
DataStructures.jl copied to clipboard
BinaryHeap constructor performs differently from heapify
I noticed that BinaryHeap like BinaryMinHeap constructs a heap that just insert every element from an array to a empty heap. And the following x
and y
have the same order:
julia> nums = rand(1:20000, 2000);
julia> x = MutableBinaryMinHeap(nums);
julia> y = BinaryMinHeap(Int.([]));
julia> for i in nums
push!(y, i)
end
However, there is an O(N) heap-building algorithm instead of O(NlogN), and function heapify
is an implement. So why not use heapify instead of insert successively?
Sincerely.
Hi @oxinabox @AquaIndigo I am interested in fixing this, but I am relatively new to Julia. Any tips on getting started? Thanks!
I recommend asking on julialang slack or Discourse.
The code change should be fairly straight forward if you are familar with the constructor in question and the heapify
function
@AliMalik9599 Are you still working on this issue?