Sorting algorithms/Heapsort: Difference between revisions

m
J: simpler definition for swap
m (J: minor cleanup)
m (J: simpler definition for swap)
Line 738:
{{eff note|J|/:~}}
'''Translation of the pseudocode'''
<lang j>swap=: |C.@:{`[`]}~ <
 
siftDown=: 4 : 0
Line 745:
before=. <&({&y)
if. e > 1+c do. c=.c+ c before c+1 end.
if. s before c do. y=. (c,s)y swap yc,s else. break. end.
end.
y
Line 753:
if. 1>: c=. # y do. y return. end.
z=. siftDown&.>/ (c,~each i.<.c%2),<y NB. heapify
> ([ siftDown swap~)&.>/ (0,each}.i.c),z
)</lang>
'''Examples'''
6,962

edits