# File typeprof-0.21.1/lib/typeprof/utils.rb, line 163 def deletemin return nil if @heap.empty? val = @heap[0][1] @set.delete(val) if @heap.size == 1 @heap.pop return val end @heap[0] = @heap.pop i = 0 while (j = i * 2 + 1) < @heap.size j += 1 if j + 1 < @heap.size && (@heap[j][0] <=> @heap[j + 1][0]) >= 0 break if (@heap[i][0] <=> @heap[j][0]) < 0 @heap[i], @heap[j] = @heap[j], @heap[i] i = j end return val end
# File typeprof-0.21.1/lib/typeprof/utils.rb, line 186 def empty? @heap.empty? end
# File typeprof-0.21.1/lib/typeprof/utils.rb, line 149 def insert(key, val) i = @heap.size @heap << [key, val] while i > 0 && (@heap[i][0] <=> @heap[i / 2][0]) < 0 @heap[i], @heap[i / 2] = @heap[i / 2], @heap[i] i /= 2 end @set << val end
# File typeprof-0.21.1/lib/typeprof/utils.rb, line 190 def inspect "#<#{ self.class }:#{ @heap.map {|_key, val| val }.inspect }>" end