gpt4 book ai didi

sorting - 从表中找到最小值的最佳方法?

转载 作者:行者123 更新时间:2023-12-05 01:49:13 24 4
gpt4 key购买 nike

local test = {10,104,20,1042,1042104,592,502,5940,230952,291}

for i, v in pairs(test) do
table.sort(test)
print(v)
end

我正在成功地打印出这些值,但我不确定如何只打印最小的数字。我已经尝试使用 math.min 无济于事。

我尝试了 math.min,并尝试使用 table.unpack,但都没有用。使用 math.min 没有任何改变,使用 table.unpack 导致它在显示错误之前只打印第一个数字:

10
lua: main.lua:6: attempt to call field 'unpack' (a nil value)
stack traceback:
main.lua:6: in main chunk

最佳答案

获得最小值的最快方法是遍历表格一次并记住您找到的最小值。

local min = math.huge
for i, v in ipairs(test) do
min = v < min and v or min
-- or: min = math.min(v, min)
end

或者 local min = math.min(table.unpack(test)) 请注意,在旧的 Lua 版本中,unpack 仅限于几千个值。

排序更复杂。对于小型数据集,它通常没问题。

顺便说一句,为什么要在循环中对表格进行排序?

for i, v in pairs(test) do table.sort(test) print(v) end

table.sort(test)移到循环前面

关于table.unpack,使用unpack。您可能正在运行旧版本的 Lua。我相信它在 5.1 之后被移入了表库

关于sorting - 从表中找到最小值的最佳方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74376922/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com