Sorting algorithms/Insertion sort: Difference between revisions
Content added Content deleted
(→{{header|REXX}}: removed superflous blanks, added comments, restructed DO loops. -- ~~~~) |
|||
Line 1,536: | Line 1,536: | ||
=={{header|REXX}}== |
=={{header|REXX}}== |
||
<lang rexx> |
|||
<lang rexx>/*REXX program sorts an array using the insertion-sort method. */ |
|||
call gen@ /*generate array elements. */ |
|||
call show@ 'before sort' /*show before array elements*/ |
|||
call insertionSort highItem /*invoke the insertion sort.*/ |
|||
call show@ ' after sort' /*show after array elements*/ |
|||
exit |
|||
/*─────────────────────────────────────INSERTIONSORT subroutine────*/ |
|||
insertionSort: procedure expose @.; parse arg highItem |
|||
do i=2 to highItem |
|||
value=@.i |
|||
do j=i-1 by -1 while j\==0 & @.j>value |
|||
jp1=j+1 |
|||
@.jp1=@.j |
|||
end |
|||
jp1=j+1 |
|||
@.jp1=value |
|||
end |
|||
return |
|||
/*─────────────────────────────────────GEN@ subroutine─────────────*/ |
|||
gen@: @.='' /*assign default value. */ |
|||
@.1="---Monday's Child Is Fair of Face (by Mother Goose)---" |
|||
@.2="Monday's child is fair of face;" |
|||
@.3="Tuesday's child is full of grace;" |
|||
@.4="Wednesday's child is full of woe;" |
|||
@.5="Thursday's child has far to go;" |
|||
@.6="Friday's child is loving and giving;" |
|||
@.7="Saturday's child works hard for a living;" |
|||
@.8="But the child that is born on the Sabbath day" |
|||
@.9="Is blithe and bonny, good and gay." |
|||
do highItem=1 while @.highItem\=='' /*find how many entries. */ |
|||
end |
|||
highItem=highItem-1 /*adjust highItem slightly. */ |
|||
return |
|||
/*─────────────────────────────────────SHOW@ subroutine────────────*/ |
|||
show@: widthH=length(highItem) /*maximum width of any line.*/ |
|||
do j=1 for highItem |
|||
say 'element' right(j,widthH) arg(1)':' @.j |
|||
end |
|||
say copies('─',80) /*show a seperator line. */ |
|||
return</lang> |
return</lang> |
||