median function
Implementation
double? median(Iterable<num> values) {
final List<double> list = values.map((num n) => n.toDouble()).toList()..sort();
if (list.isEmpty) return null;
final int mid = list.length ~/ 2;
if (list.length.isOdd) return list[mid];
return (list[mid - 1] + list[mid]) / 2;
}