我找不到简单的实现方法来查找数组的中位数。在bash中如何做到这一点而不重新发明轮子?
如果当前正在使用这个:
median() {
arr=$1
nel=${#arr[@]}
if (( $nel % 2 == 1 )); then # Odd number of elements
val="${arr[ $(($nel/2)) ]}"
else # Even number of elements
val="$(( ( arr[$((nel/2))] + arr[$((nel/2-1))] ) / 2 ))"
fi
printf "%d\n" "$val"
}
由于某些原因我还无法理解,它返回了错误的值并且看起来对于一个如此简单的东西来说过于复杂。我感觉一定有办法可以在一行代码中完成这个任务。
bash
的一行解决方案吗? - Jose Ricardo Bustos M.