Files
gaboshlib/gaboshlib/g_median.sh
2024-08-16 22:42:16 +02:00

28 lines
672 B
Bash

function g_median {
unset g_median_result
# Array with numbers
local g_numbers=("$@")
# sort array
local g_sorted_numbers=($(printf "%s\n" "${g_numbers[@]}" | sort -n))
# number of elements
local g_num_elements=${#g_sorted_numbers[@]}
# calculate the middle
local g_middle=$((g_num_elements/2))
local g_median
# Falls die Anzahl der Elemente ungerade ist
if ((g_num_elements % 2 == 1)); then
g_median=${g_sorted_numbers[g_middle]}
else
# Falls die Anzahl der Elemente gerade ist
g_calc "(${g_sorted_numbers[g_middle - 1]} + ${g_sorted_numbers[g_middle]}) / 2"
g_median=$g_calc_result
fi
g_median_result=$g_median
}