Data commit
This commit is contained in:
parent
7387c8f97b
commit
cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions
|
|
@ -0,0 +1,22 @@
|
|||
merge(a, b) := block(
|
||||
[c: [ ], i: 1, j: 1, p: length(a), q: length(b)],
|
||||
while i <= p and j <= q do (
|
||||
if a[i] < b[j] then (
|
||||
c: endcons(a[i], c),
|
||||
i: i + 1
|
||||
) else (
|
||||
c: endcons(b[j], c),
|
||||
j: j + 1
|
||||
)
|
||||
),
|
||||
if i > p then append(c, rest(b, j - 1)) else append(c, rest(a, i - 1))
|
||||
)$
|
||||
|
||||
mergesort(u) := block(
|
||||
[n: length(u), k, a, b],
|
||||
if n <= 1 then u else (
|
||||
a: rest(u, k: quotient(n, 2)),
|
||||
b: rest(u, k - n),
|
||||
merge(mergesort(a), mergesort(b))
|
||||
)
|
||||
)$
|
||||
Loading…
Add table
Add a link
Reference in a new issue