Skip to content

Commit 99d214b

Browse files
authored
Merge pull request #777 from MarcinKonowalczyk/heap-array
Cleaner percolate up/down syntax
2 parents ec5be71 + 07472e3 commit 99d214b

File tree

1 file changed

+6
-12
lines changed

1 file changed

+6
-12
lines changed

src/heaps/arrays_as_heaps.jl

Lines changed: 6 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -19,12 +19,9 @@ function percolate_down!(xs::AbstractArray, i::Integer, x=xs[i], o::Ordering=For
1919
@inbounds while (l = heapleft(i)) <= len
2020
r = heapright(i)
2121
j = r > len || lt(o, xs[l], xs[r]) ? l : r
22-
if lt(o, xs[j], x)
23-
xs[i] = xs[j]
24-
i = j
25-
else
26-
break
27-
end
22+
lt(o, xs[j], x) || break
23+
xs[i] = xs[j]
24+
i = j
2825
end
2926
xs[i] = x
3027
end
@@ -35,12 +32,9 @@ percolate_down!(xs::AbstractArray, i::Integer, o::Ordering, len::Integer=length(
3532
# Binary min-heap percolate up.
3633
function percolate_up!(xs::AbstractArray, i::Integer, x=xs[i], o::Ordering=Forward)
3734
@inbounds while (j = heapparent(i)) >= 1
38-
if lt(o, x, xs[j])
39-
xs[i] = xs[j]
40-
i = j
41-
else
42-
break
43-
end
35+
lt(o, x, xs[j]) || break
36+
xs[i] = xs[j]
37+
i = j
4438
end
4539
xs[i] = x
4640
end

0 commit comments

Comments
 (0)