标签:
function partion(arr, left, right)
local tmp = arr[left]
while left < right do
while left < right and arr[right] >= tmp do
right = right - 1
end
if left < right then
arr[left] = arr[right]
left = left + 1
end
while left < right and arr[left] <= tmp do
left = left + 1
end
if left < right then
arr[right] = arr[left]
right = right - 1
end
end
arr[left] = tmp
return left
end
function qsort(arr, left, right)
if left < right then
local index = partion(arr, left, right)
qsort(arr, left, index-1)
qsort(arr, index + 1, right)
end
end
function q_sort(arr, left, right)
if left >= right then
return
end
local i = left
local j = right
local key = arr[left]
while i < j do
while i < j and key <= arr[j] do
j = j - 1
end
arr[i] = arr[j]
while i < j and key >= arr[i] do
i = i + 1
end
arr[j] = arr[i]
end
arr[i] = key
q_sort(arr, left , i-1)
q_sort(arr, i+1 , right)
end
function show_table(tb)
for i = 1, #tb, 1 do
print(tb[i])
end
end
tb = {9,8,4,5,1,2,3}
q_sort(tb, 1, #tb)
show_table(tb)
标签:
原文地址:http://www.cnblogs.com/aceg/p/4611630.html