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 bubble-sort algorithm.*/
<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 /*N: number of array elements. */
bubbleSort: procedure expose @.; parse arg n; m=n-1 /*N: number of array elements. */
do until ok; ok=1 /*keep sorting array until done.*/
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 out-of-order?*/
do j=1 for m; k=j+1; if @.j<=@.k then iterate /*Not out─of─order?*/
_=@.j; @.j=@.k; @.k=_; ok=0 /*swap 2 elements; flag as ¬done*/
_=@.j; @.j=@.k; @.k=_; ok=0 /*swap 2 elements; flag as ¬done*/
end /*j*/
end /*j*/
end /*until ok*/
end /*until ok*/