median function

double? median(
  1. Iterable<num> values
)

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;
}