找到一系列浮点数的中位数



我已经浏览了此处的所有示例,没有什么可以回答我的问题了。我是Groovy的新手。

我想创建类似列表或一系列浮点数的东西,例如239.99。

然后,我想将该数组或列表传递给一个方法,该方法将确定该数组或数字列表中的中位数。总尺寸会有所不同。

是否有快速简便的代码可以执行此操作?如何将每个数字添加到数组或列表中,必须使用双打?

任何帮助。

谢谢!

以下功能确定非空列表的中位数。

def median(data) {
    def copy = data.toSorted()
    def middle = data.size().intdiv(2)
    // you can omit the return in groovy for the last statement
    data.size() % 2 ? copy[middle] : (copy[middle - 1] + copy[middle]) / 2
}

它与支持加法和分裂的所有类型一起工作。

例如:

assert median([1, 7, 4, 3]) == 3.5
assert median([1, 7, 4]) == 4
assert median([1, 7]) == 4
assert median([1]) == 1
assert median([1.7, 3.4, 10.9, 4.2]) == 3.8

根据您可以使用列表的操作,请检查列表概述,然后列表API。

最新更新