Sort stability: Difference between revisions
Content added Content deleted
m (→{{header|REXX}}: added an EXIT code.) |
m (→{{header|REXX}}: added whitespace.) |
||
Line 1,499: | Line 1,499: | ||
call bubbleSort # /*invoke the bubble sort. */ |
call bubbleSort # /*invoke the bubble sort. */ |
||
call show ' after sort' /*show the after array elements. */ |
call show ' after sort' /*show the after array elements. */ |
||
exit 0 |
exit 0 /*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 m=m for m by -1 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 |
do j=1 for m; k= j+1; if @.j<=@.k then iterate /*Not out─of─order?*/ |
||
_=@.j; @.j=@.k; @.k= |
_= @.j; @.j= @.k; @.k= _ ok= 0 /*swap 2 elements; flag as ¬done*/ |
||
end /*j*/ |
end /*j*/ |
||
end /*m*/; return |
end /*m*/; return |