直接贴代码,果然写起来比c++快哈哈
function PrintResult()
for i=1,#arr do
io.write(arr[i].." ")
end
io.write("\n")
end
function Quick_Sort(arr,low,height)
if low >= height then
return
end
local i = low
local j = height
local key = arr[low]
while i<j do
while i<j and arr[j]>=key do --注意=号必须有,否则不会找到真正满足条件(即小于key)的数
j = j-1
end
--从后往前找到第一个小于key的数
arr[i]=arr[j]
while i<j and arr[i]<=key do
i = i + 1
end
-- 从前往后找到第一个大于key的数
arr[j]=arr[i]
end
arr[i] = key -- 临界值复位
Quick_Sort(arr,low,i-1)
Quick_Sort(arr,i+1,height)
end
arr={1,324,35,2345,24,2,4,65}
PrintResult()
Quick_Sort(arr,1,#arr)
PrintResult()
注意事项注释里面,第一次写就是少了=,发现结果错乱了。