快速排序算法是一种十分常用的排序算法,时间复杂度为f(nlogn)
下面给出如何在Lua中实现快速排序的代码:
local list = {7,9,3,5,1,2,8,4,6,10}
local quicksort
function quicksort(left, right)
if left > right then
return
end
local i = left
local j = right
local guard = list[left]
while i ~= j do
while list[j] >= guard and i < j do
j = j - 1
end
while list[i] <= guard and i < j do
i = i + 1
end
if i < j then
list[i], list[j] = list[j], list[i]
end
end
list[left], list[i] = list[i], list[left]
quicksort(left, i-1)
quicksort(i+1, right)
end
quicksort(1, #list)
for i = 1, #list do
print(list[i])
end
输出结果如下:
1
2
3
4
5
6
7
8
9
10
[Finished in 0.0s]