Sort stability: Difference between revisions

m
→‎{{header|REXX}}: added whitespace, split a compound statement.
m (added Category:Sorting)
m (→‎{{header|REXX}}: added whitespace, split a compound statement.)
Line 1,133:
exit /*stick a fork in it, we're all done. */
/*──────────────────────────────────────────────────────────────────────────────────────*/
bubbleSort: procedure expose @.; parse arg n; m= n-1 /*N: number of array elements. */
do m=m for m by -1 until ok; ok=1 1 /*keep sorting array until done.*/
do j=1 for m; k=j+1; if @.j<=@.k then iterate /*Not out─of─order?*/
_=@.j; @.j=@.k; @.k=_; ok=0 0 /*swap 2 elements; flag as ¬done*/
end /*j*/
end /*m*/; return
return
/*──────────────────────────────────────────────────────────────────────────────────────*/
gen@: @.=; @.1 = 'UK London'
@.2 = 'US New York'
@.3 = 'US Birmingham'
@.4 = 'UK Birmingham'
do #=1 while @.#\==''; end; #=#-1 /*determine how many entries in list. */
end /*#*/; #= # - 1; return /*adjust for the DO loop index; return*/
return
/*──────────────────────────────────────────────────────────────────────────────────────*/
show: do j=1 for #; say ' element' right(j,length(#)) arg(1)":" @.j; end; return</lang>
'''{{out|output''' |text=&nbsp; when using the default list:}}
<pre>
element 1 before sort: UK London