Class DoubleLongMinHeap
- java.lang.Object
-
- elki.utilities.datastructures.heap.DoubleLongMinHeap
-
- All Implemented Interfaces:
DoubleLongHeap
public class DoubleLongMinHeap extends java.lang.Object implements DoubleLongHeap
Binary heap for double keys and long values.This class is generated from a template.
- Since:
- 0.6.0
- Author:
- Erich Schubert
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description private classDoubleLongMinHeap.UnsortedIterUnsorted iterator - in heap order.
-
Field Summary
Fields Modifier and Type Field Description protected intsizeCurrent size of heap.private static intTWO_HEAP_INITIAL_SIZEInitial size of the 2-ary heap.protected double[]twoheapBase heap.protected long[]twovalsBase heap values.
-
Constructor Summary
Constructors Constructor Description DoubleLongMinHeap()Constructor, with default size.DoubleLongMinHeap(int minsize)Constructor, with given minimum size.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidadd(double o, long v)Add a key-value pair to the heapvoidadd(double key, long val, int max)Add a key-value pair to the heap if it improves the top.voidclear()Clear the heap contents.booleancontainsKey(double q)Contains operation for a key (slow: with a linear scan).booleancontainsValue(long q)Contains operation for a value (slow: with a linear scan).private voidheapifyDown(double cur, long val)Invoke heapify-down for the root object.private voidheapifyUp(int twopos, double cur, long val)Heapify-Up method for 2-ary heap.booleanisEmpty()Is the heap empty?doublepeekKey()Get the current top key.longpeekValue()Get the current top value.voidpoll()Remove the first element.voidreplaceTopElement(double reinsert, long val)Combined operation that removes the top element, and inserts a new element instead.intsize()Query the size.java.lang.StringtoString()DoubleLongMinHeap.UnsortedIterunsortedIter()Get an unsorted iterator to inspect the heap.
-
-
-
Field Detail
-
twoheap
protected double[] twoheap
Base heap.
-
twovals
protected long[] twovals
Base heap values.
-
size
protected int size
Current size of heap.
-
TWO_HEAP_INITIAL_SIZE
private static final int TWO_HEAP_INITIAL_SIZE
Initial size of the 2-ary heap.- See Also:
- Constant Field Values
-
-
Method Detail
-
clear
public void clear()
Description copied from interface:DoubleLongHeapClear the heap contents.- Specified by:
clearin interfaceDoubleLongHeap
-
size
public int size()
Description copied from interface:DoubleLongHeapQuery the size.- Specified by:
sizein interfaceDoubleLongHeap- Returns:
- Size
-
isEmpty
public boolean isEmpty()
Description copied from interface:DoubleLongHeapIs the heap empty?- Specified by:
isEmptyin interfaceDoubleLongHeap- Returns:
truewhen the size is 0.
-
add
public void add(double o, long v)Description copied from interface:DoubleLongHeapAdd a key-value pair to the heap- Specified by:
addin interfaceDoubleLongHeap- Parameters:
o- Keyv- Value
-
add
public void add(double key, long val, int max)Description copied from interface:DoubleLongHeapAdd a key-value pair to the heap if it improves the top.- Specified by:
addin interfaceDoubleLongHeap- Parameters:
key- Keyval- Valuemax- Desired maximum size
-
replaceTopElement
public void replaceTopElement(double reinsert, long val)Description copied from interface:DoubleLongHeapCombined operation that removes the top element, and inserts a new element instead.- Specified by:
replaceTopElementin interfaceDoubleLongHeap- Parameters:
reinsert- Key of new elementval- Value of new element
-
heapifyUp
private void heapifyUp(int twopos, double cur, long val)Heapify-Up method for 2-ary heap.- Parameters:
twopos- Position in 2-ary heap.cur- Current objectval- Current value
-
poll
public void poll()
Description copied from interface:DoubleLongHeapRemove the first element.- Specified by:
pollin interfaceDoubleLongHeap
-
heapifyDown
private void heapifyDown(double cur, long val)Invoke heapify-down for the root object.- Parameters:
cur- Object to insert.val- Value to reinsert.
-
peekKey
public double peekKey()
Description copied from interface:DoubleLongHeapGet the current top key.- Specified by:
peekKeyin interfaceDoubleLongHeap- Returns:
- Top key
-
peekValue
public long peekValue()
Description copied from interface:DoubleLongHeapGet the current top value.- Specified by:
peekValuein interfaceDoubleLongHeap- Returns:
- Value
-
containsKey
public boolean containsKey(double q)
Description copied from interface:DoubleLongHeapContains operation for a key (slow: with a linear scan).- Specified by:
containsKeyin interfaceDoubleLongHeap- Parameters:
q- Key- Returns:
trueif the key is contained in the heap.
-
containsValue
public boolean containsValue(long q)
Description copied from interface:DoubleLongHeapContains operation for a value (slow: with a linear scan).- Specified by:
containsValuein interfaceDoubleLongHeap- Parameters:
q- Value- Returns:
trueif the value is contained in the heap.
-
toString
public java.lang.String toString()
- Overrides:
toStringin classjava.lang.Object
-
unsortedIter
public DoubleLongMinHeap.UnsortedIter unsortedIter()
Description copied from interface:DoubleLongHeapGet an unsorted iterator to inspect the heap.- Specified by:
unsortedIterin interfaceDoubleLongHeap- Returns:
- Iterator
-
-