Jump to content

Sorting algorithms/Insertion sort: Difference between revisions

→‎{{header|REXX}}: removed superflous blanks, added comments, restructed DO loops. -- ~~~~
(→‎{{header|REXX}}: removed superflous blanks, added comments, restructed DO loops. -- ~~~~)
Line 1,536:
 
=={{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>
 
Cookies help us deliver our services. By using our services, you agree to our use of cookies.