--- 打印table
function printTB(tb)
print("打印tb", table.concat( tb, ", "))
end
--- 冒泡排序
local tbArray = {3,5,7,34,1,78,77,23,-10,33,73,2345,45}
function buddle_sort(tbArray)
local i,j,tmp
for i=1,#tbArray-1,1 do
for j=1,#tbArray-i,1 do -- tbArray-i的原因是, j+1位的值已经是最终结果,不需要再变动
print("+++j 当前比较的数="..tbArray[j].." "..tbArray[j+1])
if tbArray[j] < tbArray[j+1] then
print("交换".. tbArray[j].." ".. tbArray[j+1])
tmp = tbArray[j+1]
tbArray[j+1] = tbArray[j]
tbArray[j] = tmp
end
end
printTB(tbArray)
end
end
buddle_sort(tbArray)
简单选择排序
--- 打印table
function printTB(tb)
print("打印tb", table.concat( tb, ", "))
end
--- 简单选择排序
local tbArray = {3,5,7,34,1,78,77,23,-10,33,73,2345,45}
function select_sort( tb )
local i,j,max,tmp
for i = 1 , #tb-1, 1 do
max = i
for j = i+1, #tb, 1 do
if tb[j] > tb[max] then
-- 找出最大的一个值所在的下标
max = j
end
end
if max ~= i then
tmp = tbArray[max]
tbArray[max] = tbArray[i]
tbArray[i] = tmp
end
printTB(tb)
end
end
select_sort(tbArray)