交换法:
-- region TestLua.lua
function Sort(list)
local gap = math.floor(#list / 2)
while gap > 0 do
for i = gap + 1, #list do
local j = i
while j > gap and list[j] < list[j - gap] do
Swap(list, j, j - gap)
j = j - gap
end
end
gap = math.floor(gap / 2)
end
end
function Swap(list, index0, index1)
local temp = list[index0]
list[index0] = list[index1]
list[index1] = temp
end
--- <summary>
--- main logic.
--- </summary>
m_List = { 0, 4, 3, 2, 1 }
Sort(m_List)
--- <summary>
--- output string.
--- </summary>
m_Output = ""
for i, v in pairs(m_List) do
m_Output = m_Output .. tostring(v) .. ", "
end
print("m_Output=" .. m_Output)
os.execute("pause")
-- endregion
移动法:
-