概述
a = {1,3,5,2,6,8,10,3,6,20}
--快速排序(以数组最左边的值为基准,比它小的放左边,比它大的放右边,然后再对左右两边的数组进行同样的操作,直到细分排列完成)
local function KuaiSuPaiXu(arr, startIndex, endIndex)
if startIndex >= endIndex then
return
end
local lowIndex = startIndex
local highIndex = endIndex
local key = arr[lowIndex]
while(lowIndex < highIndex) do
while(arr[highIndex] >= key and highIndex > lowIndex) do --找到一个小于key的值放在左边
highIndex = highIndex - 1
end
arr[lowIndex] = arr[highIndex]
while(arr[lowIndex] <= key and highIndex > lowIndex) do --找到一个大于Key的放在右边
lowIndex = lowIndex + 1
end
arr[highIndex] = arr[lowIndex]
arr[lowIndex] = key --把key放在游标停止处
end
--对数组整体做一次排序,得到中间索引,切分成左右两个数组,然后再递归
KuaiSuPaiXu(arr, startIndex, lowIndex - 1)
KuaiSuPaiXu(arr, lowIndex + 1, endIndex)
end
local function PrintTab(t)
for k, v in pairs(t) do
print(v)
end
end
print("KuaiSuPaiXu")
KuaiSuPaiXu(a, 1, #a)
PrintTab(a)
最后
以上就是天真鞋子为你收集整理的Lua的排序算法——快速排序的全部内容,希望文章能够帮你解决Lua的排序算法——快速排序所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复