【发布时间】:2021-03-06 13:04:12
【问题描述】:
我目前正在学习 Lua,我正在尝试用它创建一个冒泡排序算法。但是,我无法让它工作。谁能指出原因?
我可以指出的一些细节是,在较短的列表(例如 3 个元素长的列表)上,该算法确实成功地对其进行了排序,但随后继续对其进行排序,就好像它没有排序一样。在较长的列表(例如 5 个元素长的列表)上,程序根本不会对其进行排序。我通过让程序在每次交换两个元素时打印列表来获得这些信息。
user_input = 0
list = {}
while user_input ~= "SORT" do
print("Input number value, or input SORT to start sort")
user_input = io.read()
if user_input ~= "SORT" then
table.insert(list, user_input)
end
end
done = false
while done == false do
done = true
for k, v in pairs(list) do
if k ~= 1 then
if list[k] < list[k - 1] then
list[k], list[k - 1] = list[k - 1], list[k]
done = false
for k, v in pairs(list) do
io.write(v .. " ")
end
print()
end
end
if k == 1 then
if list[k] < list[table.maxn(list)] then
list[k], list[table.maxn(list)] = list[table.maxn(list)], list[k]
done = false
for k, v in pairs(list) do
io.write(v .. " ")
end
print()
end
end
end
end
io.write("RESULT: ")
for k, v in pairs(list) do
io.write(v .. " ")
end
print()
【问题讨论】:
-
你用的是什么版本的lua?
table.maxn不在 5.3 版本中 -
我使用的是 5.1.5。
标签: lua bubble-sort