文章目錄
先挑最值,再把剩下的挑最值,再把剩下的挑最值。。。
-- 排序函數
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中的數組和字典都使用相同的數據結構(即表),但在這個例子中,我們只使用了數組部分。