Sorting algorithms/Heapsort: Difference between revisions

m
→‎version 2: added a 2nd output to show the sorting of numbers.
m (→‎{{header|REXX}}: restructured 1st two programs, add/changed comments and whitespace.)
m (→‎version 2: added a 2nd output to show the sorting of numbers.)
Line 2,917:
 
===version 2===
This REXX version creates a stemmed array from a list   (it can be numbers or characters).
<lang rexx>/*REXX program sorts a list (names of modern Greek letters) using a heapsort algorithm.*/
parse arg g /*obtain optional argument from the CL.*/
if g='' then g= 'alpha beta gamma delta epsilon zeta eta theta iota kappa lambda mu nu',
"mu nu "xi omicron pi rho sigma tau upsilon phi chi psi omega" /*adjust # [↓] */
do #=1 for words(g); @.#=word(g,#); end; #=#-1
call show "before sort:"
Line 2,940 ⟶ 2,941:
/*──────────────────────────────────────────────────────────────────────────────────────*/
show: do e=1 for #; say ' element' right(e,length(#)) arg(1) @.e; end; return</lang>
'''output''' &nbsp; is the same as the 1<sup>st</sup> REXX version when using the default input.
 
'''output''' &nbsp; when using the following for input: &nbsp; <tt> 19 0 -.2 .1 1e5 19 17 -6 789 11 37 </tt>
<pre>
element 1 before sort: 19
element 2 before sort: 0
element 3 before sort: -.2
element 4 before sort: .1
element 5 before sort: 1e5
element 6 before sort: 19
element 7 before sort: 17
element 8 before sort: -6
element 9 before sort: 789
element 10 before sort: 11
element 11 before sort: 37
▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒
element 1 after sort: -6
element 2 after sort: -.2
element 3 after sort: 0
element 4 after sort: .1
element 5 after sort: 11
element 6 after sort: 17
element 7 after sort: 19
element 8 after sort: 19
element 9 after sort: 37
element 10 after sort: 789
element 11 after sort: 1e5
</pre>
 
===version 3===