--排序算法汇总 lua版本
arr = {5,0,4,1,8,2,3,6,7,9}
--打印数组函数
function print_arr( arr )
for i,v in ipairs(arr) do
print(v)
end
end
--冒泡排序 从小到大
--逐个比较,谁大谁就往上走
function bubble_sort( arr )
for i, v in ipairs(arr) do
for j = 1, i do
if arr[i] < arr[j] then
arr[i], arr[j] = arr[j], arr[i]
end
end
end
end
--选择排序
--每次选出最小的那个,放在最前面
function select_sort( arr )
for i in ipairs(arr) do
local minIndex = i
for j = i + 1, #arr do
if arr[j] < arr[minIndex] then
minIndex = j
end
end
arr[i], arr[minIndex] = arr[minIndex], arr[i]
end
end
--插入排序
--每次选出一个插到已排好序的数组里
function insert_sort( arr )
for i = 2, #arr do --从第二位开始,往左边开始插
local current = arr[i] --取出要插入的数字 即基数
local j = i - 1 --该index指的是每次比较的数字的下标,从基数左边开始
while j >= 1 and arr[j] > current do --当它比基数大的时候 j>=1必须加上
arr[j + 1] = arr[j] --它要往后移一位
j = j - 1
排序算法 Lua实现
最新推荐文章于 2024-05-15 17:23:46 发布