2
嘿,我試圖從合併排序在Lua中實現合併函數。我很熟悉算法,但我是Lua的新手。我不斷收到一個「不好的論據#1','插入'(表預期,得到零)」我相信錯誤指向我的遞歸調用。我無法弄清楚,我有一種感覺,這是相當微不足道的。我只需要一個Lua大師給我一些指導。謝謝。這裏是我的功能:Lua合併函數
function merge(l1, l2)
if # l1 == 0 then
return l2
elseif # l2 == 0 then
return l1
else
if l1[1] <= l2[1] then
tmp = l1[1]
table.remove(l1,1)
return table.insert(merge(l1,l2),tmp)
else
tmp = l2[1]
table.remove(l2,1)
return table.insert(merge(l1,l2),tmp)
end
end
end
嘿。感謝您的提示!它效果很好!合併函數採用兩個已排序的表並將它們合併到一個已排序的表中。我必須將table.insert(t,tmp)更改爲table.insert(t,1,tmp),以便它將項目插入到返回表的開頭。 – 2010-07-20 19:46:17
很高興爲您服務! – ponzao 2010-07-21 07:22:43
Mike K,我想你忘記標記ponzao的答案是正確的。 – kikito 2010-07-26 15:43:24