Skip to content

Commit b4dec98

Browse files
committed
add missing sink method
1 parent ba4c046 commit b4dec98

File tree

1 file changed

+16
-0
lines changed

1 file changed

+16
-0
lines changed

src/data/minpq.lua

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,22 @@ function minpq:swim(k)
7373
end
7474
end
7575

76+
function minpq:sink(k)
77+
while k <= self.N do
78+
child = k * 2
79+
if child < self.N and self:less(self.s[child+1], self.s[child]) then
80+
child = child + 1
81+
end
82+
if self:less(self.s[child], self.s[k]) then
83+
self:exchange(self.s, child, k)
84+
k = child
85+
else
86+
break
87+
end
88+
end
89+
90+
end
91+
7692
function minpq:less(a1, a2)
7793
return a1 - a2 < 0
7894
end

0 commit comments

Comments
 (0)