Class: Search::MinHeap
- Inherits:
-
Object
- Object
- Search::MinHeap
- Defined in:
- lib/kotoshu/embeddings/search.rb
Overview
Min-heap for top-k selection
Instance Method Summary collapse
- #each(&block) ⇒ Object
- #empty? ⇒ Boolean
-
#initialize(max_size) ⇒ MinHeap
constructor
A new instance of MinHeap.
- #push(item) ⇒ Object
- #size ⇒ Object
- #to_a ⇒ Object
Constructor Details
#initialize(max_size) ⇒ MinHeap
Returns a new instance of MinHeap.
19 20 21 22 |
# File 'lib/kotoshu/embeddings/search.rb', line 19 def initialize(max_size) @max_size = max_size @heap = [] end |
Instance Method Details
#each(&block) ⇒ Object
38 39 40 |
# File 'lib/kotoshu/embeddings/search.rb', line 38 def each(&block) @heap.each(&block) end |
#empty? ⇒ Boolean
30 31 32 |
# File 'lib/kotoshu/embeddings/search.rb', line 30 def empty? @heap.empty? end |
#push(item) ⇒ Object
24 25 26 27 28 |
# File 'lib/kotoshu/embeddings/search.rb', line 24 def push(item) @heap << item @heap.sort_by! { |i| i[:similarity] } @heap.shift if @heap.size > @max_size end |
#size ⇒ Object
34 35 36 |
# File 'lib/kotoshu/embeddings/search.rb', line 34 def size @heap.size end |
#to_a ⇒ Object
42 43 44 |
# File 'lib/kotoshu/embeddings/search.rb', line 42 def to_a @heap.dup end |