stella v0.3.0 Heap
Documentation for Heap
data structure
Annotations
- n - number of elements in heap
Link to this section Summary
Functions
Method complexity: O(n) Restores ownership of a whole heap to Heap[parent(i)] >= Heap[i], so build heap max
Return left element of index
Method complexity: O(lgn) Max heapify changes list of elements in max heap where for each elements of list (except root) ownership takes place: Heap[parent(i)] >= Heap[i]
Method complexity: O(lgn) Min heapify changes list of elements in min heap where for each elements of list (except root) ownership takes place: Heap[parent(i)] <= Heap[i]
Create new, empty Heap
Return parent index
Return right element of index
Link to this section Functions
build_heap(heap, type)
Method complexity: O(n) Restores ownership of a whole heap to Heap[parent(i)] >= Heap[i], so build heap max
Examples
iex> Heap.build_heap([4, 1, 3, 2, 16, 9, 10, 14, 8, 7], :max) [16, 14, 10, 8, 7, 9, 3, 2, 4, 1]
iex> Heap.build_heap([16, 4, 9, 14, 7, 10, 3, 2, 8, 1], :max) [16, 14, 10, 8, 7, 9, 3, 2, 4, 1]
iex> Heap.build_heap([16, 4, 9, 14, 7, 10, 3, 2, 8, 1], :min) [1, 2, 3, 8, 4, 10, 9, 14, 16, 7]
left(index)
Return left element of index
Examples
iex> Heap.left(2) 5
iex> Heap.left(4) 9
max_heapify(heap, index, len \\ nil)
Method complexity: O(lgn) Max heapify changes list of elements in max heap where for each elements of list (except root) ownership takes place: Heap[parent(i)] >= Heap[i]
Examples
iex> Heap.max_heapify([16, 4, 10, 14, 7, 9, 3, 2, 8, 1], 1) [16, 14, 10, 8, 7, 9, 3, 2, 4, 1]
min_heapify(heap, index, len \\ nil)
Method complexity: O(lgn) Min heapify changes list of elements in min heap where for each elements of list (except root) ownership takes place: Heap[parent(i)] <= Heap[i]
Examples
iex> Heap.min_heapify([1, 4, 10, 14, 7, 9, 3, 2, 8, 16], 1) [1, 4, 10, 14, 7, 9, 3, 2, 8, 16]
new()
Create new, empty Heap
Examples
iex> Heap.new() []
parent(index)
Return parent index
Examples
iex> Heap.parent(7) 3
iex> Heap.parent(0) nil
right(index)
Return right element of index