– 快速排序函数
local function quickSort(arr)
if #arr <= 1 then
return arr
end
local pivot = arr[1] -- 选择第一个元素作为基准值
local left, right = {}, {}
for i = 2, #arr do
if arr[i] < pivot then
table.insert(left, arr[i]) -- 小于基准值的放在左边
else
table.insert(right, arr[i]) -- 大于等于基准值的放在右边
end
end
left = quickSort(left)
right = quickSort(right)
local result = {}
for i, v in ipairs(left) do
table.insert(result, v)
end
table.insert(result, pivot)
for i, v in ipairs(right) do
table.insert(result, v)
end
return result -- 返回排序后的数组
end
-- 测试
local arr = {5, 3, 8, 2, 1, 7, 4}
local sortedArr = quickSort(arr)
for _, num in ipairs(sortedArr) do
print(num)
end