Anonymous user
Sorting algorithms/Insertion sort: Difference between revisions
Sorting algorithms/Insertion sort (view source)
Revision as of 21:05, 6 September 2012
, 11 years ago→{{header|REXX}}: changed DO loop indentations, changed comments, added comments, changed fence, re-order subroutines in alphbetical order. -- ~~~~
Capra Hircus (talk | contribs) m (adding maxima) |
(→{{header|REXX}}: changed DO loop indentations, changed comments, added comments, changed fence, re-order subroutines in alphbetical order. -- ~~~~) |
||
Line 1,552:
=={{header|REXX}}==
<lang rexx>/*REXX program sorts
call gen@ /*generate the array's elements. */
call show@ 'before sort' /*show the before array elements.*/
call insertionSort highItem /*invoke the insertion sort. */
call show@ ' after sort' /*show the after array elements.*/
/*──────────────────────────────────GEN@ subroutine─────────────────────*/
insertionSort: procedure expose @.; parse arg highItem▼
@.1 = "---Monday's Child Is Fair of Face (by Mother Goose)---"▼
@.2 = "Monday's child is fair of face;"▼
do i=2 to highItem; value=@.i▼
@.3 = "Tuesday's child is full of grace;"▼
do j=i-1 by -1 while j\==0 & @.j>value▼
@.4 = "Wednesday's child is full of woe;"▼
jp=j+1; @.jp=@.j▼
@.5 = "Thursday's child has far to go;"▼
▲ end /*j*/
@.6 = "Friday's child is loving and giving;"▼
jp=j+1▼
@.7 = "Saturday's child works hard for a living;"▼
@.jp=value▼
@.8 = "But the child that is born on the Sabbath day"▼
end /*i*/▼
@.9 = "Is blithe and bonny, good and gay."▼
return▼
▲gen@: @.='' /*assign default value to array. */
▲@.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 in array.*/
end /*short and sweet DO loop, eh? */
highItem=highItem-1 /*because of DO, adjust highItem.*/
return
/*──────────────────────────────────INSERTIONSORT subroutine────────────*/
▲insertionSort: procedure expose @.; parse arg highItem
▲ do i=2 to highItem; value=@.i
▲ jp=j+1; @.jp=@.j
end /*j*/
▲ jp=j+1
▲ @.jp=value
▲ end /*i*/
▲return
/*──────────────────────────────────SHOW@ subroutine────────────────────*/
show@: widthH=length(highItem) /*the maximum width of any line. */
do j=1 for highItem
say 'element' right(j,widthH) arg(1)': ' @.j
end /*j*/
say copies('─',79) /*show a
return</lang>
'''output'''
<pre style="height:
───────────────────────────────────────────────────────────────────────────────
───────────────────────────────────────────────────────────────────────────────
</pre>
|