文章目录
先挑最值,再把剩下的挑最值,再把剩下的挑最值。。。
-- 排序函数
function selectionSort(arr) -- 外层循环,从数组的第一个元素开始,对每个元素进行排序 for i = 1, #arr do -- 假设当前位置的元素是最小的 local minIndex = i -- 内层循环,从当前位置开始,查找剩余元素中的最小值 for j = i, #arr do -- 如果找到一个更小的元素,更新最小元素的索引 if arr[j] < arr[minIndex] then minIndex = j end end -- 交换当前位置和最小元素的位置 swap(arr, i, minIndex) end
end -- 交换函数
function swap(arr, i, j) -- 使用一个临时变量来交换两个元素的值 local temp = arr[i] arr[i] = arr[j] arr[j] = temp
end -- 主程序
-- 定义一个待排序的数组
local arr = {1, 5, 2, 8, 9, 3}
-- 调用排序函数进行排序
selectionSort(arr)
-- 打印排序后的数组
for _, v in ipairs(arr) do print(v .. " ")
end
Lua中的数组和字典都使用相同的数据结构(即表),但在这个例子中,我们只使用了数组部分。