Sorting algorithms/Stooge sort: Difference between revisions

m
→‎{{header|REXX}}: added DO-END labels, remove superflous blanks. -- ~~~~
(→‎{{header|Pascal}}: This finally works :-))
m (→‎{{header|REXX}}: added DO-END labels, remove superflous blanks. -- ~~~~)
Line 924:
 
=={{header|REXX}}==
<lang REXX>/*REXX program to sort an integer array L, elements start at zero.*/
<lang REXX>
/*REXX program to sort an integer array L, elements start at zero.*/
 
highItem=19 /*define a score of elements*/
widthH=length(highItem) /*width of biggest element#.*/
widthL=0 /*width of largest element. */
 
do k=0 to highItem /*populate the array. */
L.k=2*k + (k * -1**k) /*kinda generate randomish#.*/
if L.k==0 then L.k=-100-k /*if zero, make a negative# */
widthL=max(widthL,length(L.k)) /*compute max width so far. */
end /*k*/
 
call showL 'before sort' /*show before array elements*/
Line 941 ⟶ 939:
call showL ' after sort' /*show after array elements*/
exit
/*----------------------------------showL subroutine---------------*/
 
showL: sepLength=22+widthH+widthL /*compute seperator width. */
say copies('-',sepLength) /*show 1st seperator line. */
do j=0 to highItem
say 'element' right(j,widthH) arg(1)":" right(L.j,widthL)
end /*j*/
say copies('=',sepLength) /*show 2nd seperator line. */
return
/*-----------------------------------stoogeSort subroutine---------*/
 
stoogeSort: procedure expose L.; parse arg i,j /*sort from I to -->J*/
/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
stoogeSort: procedure expose L.; parse arg i,j /*sort from I to J*/
 
if L.j<L.i then do /*swap L.i and L.j */
Line 965 ⟶ 962:
call stoogesort i , j-t
end
return</lang>
 
'''output'''
return
/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
</lang>
Output:
<pre style="height:30ex;overflow:scroll">
----------------------------