Sorting algorithms/Gnome sort: Difference between revisions

Content added Content deleted
(solved for maxscript)
m (→‎{{header|REXX}}: added/changed whitespace and comments, used a clearer separator line for output.)
Line 1,797: Line 1,797:
This REXX version used a one-based stemmed array (instead of a zero-based array).
This REXX version used a one-based stemmed array (instead of a zero-based array).
<lang rexx>/*REXX program sorts a stemmed array using the gnome-sort algorithm.*/
<lang rexx>/*REXX program sorts a stemmed array using the gnome-sort algorithm.*/
items = gen@() /*generate the @. array elements.*/
call gen@ /*generate the @. array elements.*/
call show@ 'before sort' /*show "before" array elements.*/
call show@ 'before sort' /*show "before" array elements.*/
call gnomeSort items /*invoke the infamous gnome sort.*/
call gnomeSort # /*invoke the infamous gnome sort.*/
call show@ ' after sort' /*show "after" array elements.*/
call show@ ' after sort' /*show "after" array elements.*/
exit /*stick a fork in it, we're done.*/
exit /*stick a fork in it, we're done.*/
Line 1,811: Line 1,811:
return
return
/*──────────────────────────────────GEN@ subroutine─────────────────────*/
/*──────────────────────────────────GEN@ subroutine─────────────────────*/
gen@: !='deadbeef'x ...; @.=! /*default none-value; allows null*/
gen@: !=... 'deadbeef'x ...; @.=! /*default none-value; allows null*/
@.1 = '---the seven virtues---' /* [↓] indent the seven virtues.*/
@.1 = '---the seven virtues---' /* [↓] indent the seven virtues.*/
@.2 = '=======================' ; @.6 = 'Fortitude'
@.2 = '=======================' ; @.6 = 'Fortitude'
Line 1,817: Line 1,817:
@.4 = 'Hope' ; @.8 = 'Prudence'
@.4 = 'Hope' ; @.8 = 'Prudence'
@.5 = 'Charity [Love]' ; @.9 = 'Temperance'
@.5 = 'Charity [Love]' ; @.9 = 'Temperance'

do items=1 while @.items\==!; end /*find the # of items in @ array.*/
return items-1 /*because of the DO, adjust ITEMS*/
do #=1 while @.#\==!; end /*find the # of items in @ array.*/
#=#-1 /*adjust the numer of items by 1.*/
return
/*──────────────────────────────────SHOW@ subroutine────────────────────*/
/*──────────────────────────────────SHOW@ subroutine────────────────────*/
show@: w=length(items) /*the maximum width of any item. */
show@: do j=1 for # /* [↓] display all items for @. */
do #=1 for items /* [↓] display all items for @. */
say ' element' right(j,length(#)) arg(1)":" @.j
say 'element' right(#,w) arg(1)":" @.# /*align the item numbers.*/
end /*j*/ /* [↑] right justify the J num.*/
end /*#*/ /* [↑] item# right just.*/
say copies('■',60) /*show a separator line that fits*/
say copies('─',60) /*show a separator line that fits*/
return</lang>
return</lang>
'''output'''
'''output'''
<pre>
<pre>
element 1 before sort: ---the seven virtues---
element 1 before sort: ---the seven virtues---
element 2 before sort: =======================
element 2 before sort: =======================
element 3 before sort: Faith
element 3 before sort: Faith
element 4 before sort: Hope
element 4 before sort: Hope
element 5 before sort: Charity [Love]
element 5 before sort: Charity [Love]
element 6 before sort: Fortitude
element 6 before sort: Fortitude
element 7 before sort: Justice
element 7 before sort: Justice
element 8 before sort: Prudence
element 8 before sort: Prudence
element 9 before sort: Temperance
element 9 before sort: Temperance
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
────────────────────────────────────────────────────────────
element 1 after sort: ---the seven virtues---
element 1 after sort: ---the seven virtues---
element 2 after sort: =======================
element 2 after sort: =======================
element 3 after sort: Charity [Love]
element 3 after sort: Charity [Love]
element 4 after sort: Faith
element 4 after sort: Faith
element 5 after sort: Fortitude
element 5 after sort: Fortitude
element 6 after sort: Hope
element 6 after sort: Hope
element 7 after sort: Justice
element 7 after sort: Justice
element 8 after sort: Prudence
element 8 after sort: Prudence
element 9 after sort: Temperance
element 9 after sort: Temperance
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
────────────────────────────────────────────────────────────
</pre>
</pre>