Sorting algorithms/Bubble sort: Difference between revisions
Content added Content deleted
Line 1,785: | Line 1,785: | ||
=={{header|REXX}}== |
=={{header|REXX}}== |
||
<lang |
<lang rexx> |
||
/*REXX program |
/*REXX program sorts an array using the bubble-sort method. */ |
||
call gen@ /*generate array elements. */ |
|||
call show@ 'before sort' /*show before array elements*/ |
|||
call bubbleSort highItem /*invoke the bubble sort. */ |
|||
⚫ | |||
⚫ | |||
/*─────────────────────────────────────BUBBLESORT subroutine───────*/ |
|||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
end /* 1=true 0=false */ |
|||
⚫ | |||
do k=1 for highItem /*populate the array. */ |
|||
L.k=2*k + (k * -1**k) /*kinda generate randomish#.*/ |
|||
if L.k<2 then L.k=-100-k /*if < 2, make a negative# */ |
|||
widthL=max(widthL,length(L.k)) /*compute max width so far. */ |
|||
end |
end |
||
return |
|||
call showL 'before sort' /*show before array elements*/ |
|||
call bubbleSort highItem /*invoke the bubble sort. */ |
|||
⚫ | |||
⚫ | |||
showL: sepLength=22+widthH+widthL /*compute seperator width. */ |
|||
⚫ | |||
/*─────────────────────────────────────GEN@ subroutine─────────────*/ |
|||
⚫ | |||
gen@: @.='' /*assign default value. */ |
|||
⚫ | |||
@.1 ='---letters of the Hebrew alphabet---' |
|||
⚫ | |||
@.3 ='aleph [alef]' |
|||
@.4 ='beth [bet]' |
|||
@.5 ='gimel' |
|||
@.6 ='daleth [dalet]' |
|||
@.7 ='he' |
|||
@.8 ='waw [vav]' |
|||
@.9 ='zayin' |
|||
@.10='heth [het]' |
|||
@.11='teth [tet]' |
|||
@.12='yod' |
|||
@.13='kaph [kaf]' |
|||
@.14='lamed' |
|||
@.15='mem' |
|||
@.16='nun' |
|||
@.17='samekh' |
|||
@.18='ayin' |
|||
@.19='pe' |
|||
@.20='sadhe [tsadi]' |
|||
@.21='qoph [qof]' |
|||
@.22='resh' |
|||
@.23='shin' |
|||
@.24='taw [tav]' |
|||
do highItem=1 while @.highItem\=='' /*find how many entries. */ |
|||
end |
end |
||
highItem=highItem-1 /*adjust highItem slightly. */ |
|||
return |
return |
||
/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ |
|||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
/*─────────────────────────────────────SHOW@ subroutine────────────*/ |
|||
⚫ | |||
show@: widthH=length(highItem) /*maximum widht of any line.*/ |
|||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
end |
end |
||
⚫ | |||
return |
return |
||
/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ |
|||
</lang> |
</lang> |
||
Output: |
Output: |
||
<pre style="height:30ex;overflow:scroll"> |
<pre style="height:30ex;overflow:scroll"> |
||
element 1 before sort: ---letters of the Hebrew alphabet--- |
|||
---------------------------- |
|||
element |
element 2 before sort: ==================================== |
||
element |
element 3 before sort: aleph [alef] |
||
element |
element 4 before sort: beth [bet] |
||
element |
element 5 before sort: gimel |
||
element |
element 6 before sort: daleth [dalet] |
||
element |
element 7 before sort: he |
||
element |
element 8 before sort: waw [vav] |
||
element |
element 9 before sort: zayin |
||
element |
element 10 before sort: heth [het] |
||
element |
element 11 before sort: teth [tet] |
||
element |
element 12 before sort: yod |
||
element |
element 13 before sort: kaph [kaf] |
||
element |
element 14 before sort: lamed |
||
element |
element 15 before sort: mem |
||
element |
element 16 before sort: nun |
||
element |
element 17 before sort: samekh |
||
element |
element 18 before sort: ayin |
||
element |
element 19 before sort: pe |
||
element |
element 20 before sort: sadhe [tsadi] |
||
element |
element 21 before sort: qoph [qof] |
||
⚫ | |||
⚫ | |||
element 23 before sort: shin |
|||
---------------------------- |
|||
element |
element 24 before sort: taw [tav] |
||
──────────────────────────────────────────────────────────────────────────────── |
|||
⚫ | |||
element |
element 1 after sort: ---letters of the Hebrew alphabet--- |
||
element |
element 2 after sort: ==================================== |
||
element |
element 3 after sort: aleph [alef] |
||
element |
element 4 after sort: ayin |
||
element |
element 5 after sort: beth [bet] |
||
element |
element 6 after sort: daleth [dalet] |
||
element |
element 7 after sort: gimel |
||
element |
element 8 after sort: he |
||
element |
element 9 after sort: heth [het] |
||
element |
element 10 after sort: kaph [kaf] |
||
element |
element 11 after sort: lamed |
||
element |
element 12 after sort: mem |
||
element |
element 13 after sort: nun |
||
element |
element 14 after sort: pe |
||
element |
element 15 after sort: qoph [qof] |
||
element |
element 16 after sort: resh |
||
element |
element 17 after sort: sadhe [tsadi] |
||
element |
element 18 after sort: samekh |
||
element 19 after sort: shin |
|||
============================ |
|||
element 20 after sort: taw [tav] |
|||
element 21 after sort: teth [tet] |
|||
element 22 after sort: waw [vav] |
|||
element 23 after sort: yod |
|||
element 24 after sort: zayin |
|||
──────────────────────────────────────────────────────────────────────────────── |
|||
</pre> |
</pre> |
||