2016 Update
This commit is contained in:
parent
948b86eafa
commit
dcf5d15da3
7965 changed files with 139854 additions and 31002 deletions
|
|
@ -0,0 +1,22 @@
|
|||
function getLower(a,b)
|
||||
local i,j=1,1
|
||||
return function()
|
||||
if not b[j] or a[i] and a[i]<b[j] then
|
||||
i=i+1; return a[i-1]
|
||||
else
|
||||
j=j+1; return b[j-1]
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
function merge(a,b)
|
||||
local res={}
|
||||
for v in getLower(a,b) do res[#res+1]=v end
|
||||
return res
|
||||
end
|
||||
|
||||
function mergesort(list)
|
||||
if #list<=1 then return list end
|
||||
local s=math.floor(#list/2)
|
||||
return merge(mergesort{unpack(list,1,s)}, mergesort{unpack(list,s+1)})
|
||||
end
|
||||
Loading…
Add table
Add a link
Reference in a new issue