使用Lua对订单号进行排序

我正在尝试制作一个程序来寻找一组数据的中位数、众数、平均数和范围。使用编程可以很容易地找到平均数;但中位数、众数和范围要求数字按顺序排列(从最小到最大)。

同时,我想将其组装成一个能够返回制作箱线图所需数据的程序(不全部,只需要基本的)。

目前我只是在处理这个:

将数字按顺序放入一个表格中(一个函数将返回该表格)

QWERTYUIOP[]\

好吧,这是主要问题: 我该怎么做?

这是我在运行的:

function Order_Numbers(Data_Set, Greatest_Integer, Least_Integer)
local Ordered = {} --给数字一个位置
for i=Least_Integer, Greatest_Integer do --从最小值开始,一直到最高值。
table.insert(Ordered, Data_Set[i])
end
return Ordered
end

但它不起作用! 有人有什么想法吗?

原文链接 https://stackoverflow.com/questions/7614490

点赞
stackoverflow用户968951
stackoverflow用户968951

Lua 发行版包含 sort.lua,其中有一个快速排序的简单实现;稍微简化一下,核心如下:

function qsort(vec, low, high)
  if low < high then
    local middle = partition(vec, low, high)
    qsort(vec, low, middle-1)
    qsort(vec, middle+1, high)
  end
end

->http://lua-users.org/wiki/LazySort

2011-09-30 18:29:52
stackoverflow用户107090
stackoverflow用户107090

如果可以原地排序,请使用 table.sort(Data_Set)

2011-09-30 18:47:44
stackoverflow用户734069
stackoverflow用户734069

你是否考虑过使用table.sort来进行排序?它甚至允许你提供一个函数来进行比较。

2011-09-30 18:48:22