【算法】用lua解決快速排序問題

如下


local list = { 3,1,5,18,34,32,0, }

function printList()
	local str = ""
	for i = 1,#list do
		str = str .. list[i] .. " "
	end
	print(str)
end

function qsort(low,high)
	if low >= high then	return end
	local first = low
	local last =  high
	local key = list[first]
	while first < last do
		while first < last and list[last] >= key do last = last - 1 end
		list[first] = list[last]
		while first < last and list[first] <= key do first = first + 1 end
		list[last] = list[first]
	end
	list[first] = key
	qsort(low,first - 1)
	qsort(first + 1,high)
end

printList()
qsort(1,#list)
printList()


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章