all tasks
This commit is contained in:
parent
b83f433714
commit
68f8f3e56b
14735 changed files with 178959 additions and 0 deletions
|
|
@ -0,0 +1,30 @@
|
|||
strandSort(v)={
|
||||
my(sorted=[],unsorted=v,remaining,working);
|
||||
while(#unsorted,
|
||||
remaining=working=List();
|
||||
listput(working, unsorted[1]);
|
||||
for(i=2,#unsorted,
|
||||
if(unsorted[i]<working[#working],
|
||||
listput(remaining, unsorted[i])
|
||||
,
|
||||
listput(working, unsorted[i])
|
||||
)
|
||||
);
|
||||
unsorted=Vec(remaining);
|
||||
sorted=merge(sorted, Vec(working))
|
||||
);
|
||||
sorted
|
||||
};
|
||||
merge(u,v)={
|
||||
my(ret=vector(#u+#v),i=1,j=1);
|
||||
for(k=1,#ret,
|
||||
if(i<=#u & (j>#v | u[i]<v[j]),
|
||||
ret[k]=u[i];
|
||||
i++
|
||||
,
|
||||
ret[k]=v[j];
|
||||
j++
|
||||
)
|
||||
);
|
||||
ret
|
||||
};
|
||||
Loading…
Add table
Add a link
Reference in a new issue