Family Day update
This commit is contained in:
parent
aac6731f2c
commit
9ad63ea473
2442 changed files with 39761 additions and 8255 deletions
|
|
@ -3,7 +3,7 @@ import extensions;
|
|||
|
||||
public program()
|
||||
{
|
||||
var unsorted := new int[]{6, 2, 7, 8, 3, 1, 10, 5, 4, 9};
|
||||
var unsorted := new int[]::(6, 2, 7, 8, 3, 1, 10, 5, 4, 9);
|
||||
|
||||
console.printLine(unsorted.clone().sort(ifOrdered).asEnumerable())
|
||||
}
|
||||
|
|
|
|||
|
|
@ -2,27 +2,25 @@
|
|||
Bell= 1 1 2 5 15 52 203 877 4140 21147 115975 /*a few Bell " */
|
||||
Bern= '1 -1 1 0 -1 0 1 0 -1 0 5 0 -691 0 7 0 -3617' /*" " Bernoulli " */
|
||||
Perrin= 3 0 2 3 2 5 5 7 10 12 17 22 29 39 51 68 90 /*" " Perrin " */
|
||||
list=Bell Bern Perrin /*throw them all ───► a pot. */
|
||||
list= Bell Bern Perrin /*throw them all ───► a pot. */
|
||||
say 'unsorted =' list /*display what's being shown.*/
|
||||
size=words(list) /*nice to have # of elements.*/
|
||||
do j=1 for size /*build an array, a single */
|
||||
@.j=word(list,j) /* ··· element at a time.*/
|
||||
#= words(list) /*nice to have # of elements.*/
|
||||
do j=1 for # /*build an array, a single */
|
||||
@.j=word(list, j) /* ··· element at a time.*/
|
||||
end /*j*/
|
||||
call eSort size /*sort the collection of #s. */
|
||||
$= /*list: define as null so far*/
|
||||
do k=1 for size /*build a list from the array*/
|
||||
$=$ @.k /*append a number to the list*/
|
||||
call eSort # /*sort the collection of #s. */
|
||||
$=; do k=1 for #; $= $ @.k /*build a list from the array*/
|
||||
end /*k*/
|
||||
say ' sorted =' space($) /*display the sorted list. */
|
||||
exit /*stick a fork in it, we're all done.*/
|
||||
/*──────────────────────────────────────────────────────────────────────────────────────*/
|
||||
eSort: procedure expose @.; parse arg N; h=N /*an eXchange sort.*/
|
||||
do while h>1; h= h%2 /*define a segment.*/
|
||||
do i=1 for N-h; j=i; k= h+i /*sort top segment.*/
|
||||
do while @.k<@.j /*see if need swap.*/
|
||||
parse value @.j @.k with @.k @.j /*swap two elements*/
|
||||
if h>=j then leave; j= j-h; k= k-h /*this part sorted?*/
|
||||
end /*while @.k<@.j*/
|
||||
end /*i*/
|
||||
end /*while h>1*/
|
||||
eSort: procedure expose @.; parse arg N; h= N /*an eXchange sort.*/
|
||||
do while h>1; h= h % 2 /*define a segment.*/
|
||||
do i=1 for N-h; j= i; k= h + i /*sort top segment.*/
|
||||
do while @.k<@.j /*see if need swap.*/
|
||||
parse value @.j @.k with @.k @.j /*swap two elements*/
|
||||
if h>=j then leave; j= j - h; k= k - h /*this part sorted?*/
|
||||
end /*while @.k<@.j*/
|
||||
end /*i*/
|
||||
end /*while h>1*/
|
||||
return
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue