-- region TestLua.lua
function Sort(list, leftIndex, rightIndex)
if (leftIndex >= rightIndex) then
return
end
local i = leftIndex
local j = rightIndex
local baseValue = list[leftIndex]
-- if i is j, then break the loop.
while i < j do
-- find a number less than base value in the half right of the list
while i < j and list[j] >= baseValue do
j = j - 1
end
list[i] = list[j]
-- find a number large than or equal to base value in the half left of the list
while i < j and list[i] <= baseValue do
i = i + 1
end
list[j] = list[i]
end
list[j] = baseValue
Sort(list, leftIndex, i - 1)
Sort(list, j + 1, rightIndex)
end
--- <summary>
--- main logic.
--- </summary>
m_List = { 0, 4, 3, 2, 1 }
Sort(m_List, 1, #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