Sorting algorithms/Bubble sort: Difference between revisions
Content added Content deleted
m (→{{header|REXX}}: enlarged output section window.) |
(→{{header|REXX}}: corrected code to use true bubble sort.) |
||
Line 3,320: | Line 3,320: | ||
=={{header|REXX}}== |
=={{header|REXX}}== |
||
<lang rexx>/*REXX program sorts an array (of any kind of items) using the |
<lang rexx>/*REXX program sorts an array (of any kind of items) using the bubble─sort algorithm.*/ |
||
call gen /*generate the array elements (items).*/ |
call gen /*generate the array elements (items).*/ |
||
call show 'before sort' /*show the before array elements. */ |
call show 'before sort' /*show the before array elements. */ |
||
Line 3,328: | Line 3,328: | ||
exit /*stick a fork in it, we're all done. */ |
exit /*stick a fork in it, we're all done. */ |
||
/*──────────────────────────────────────────────────────────────────────────────────────*/ |
/*──────────────────────────────────────────────────────────────────────────────────────*/ |
||
bubbleSort: procedure expose @.; parse arg n; m=n-1 |
bubbleSort: procedure expose @.; parse arg n; m=n-1 /*N: number of array elements. */ |
||
do |
do m=m for m by -1 until ok; ok=1 /*keep sorting array until done.*/ |
||
do j=1 for m; k=j+1; if @.j<=@.k then iterate /*Not |
do j=1 for m; k=j+1; if @.j<=@.k then iterate /*Not out─of─order?*/ |
||
_=@.j; @.j=@.k; @.k=_; ok=0 |
_=@.j; @.j=@.k; @.k=_; ok=0 /*swap 2 elements; flag as ¬done*/ |
||
end /*j*/ |
end /*j*/ |
||
end /*until ok*/ |
end /*until ok*/ |