median function

double median(
  1. List<num> values
)

Median of values (assumes non-empty; sorts a copy).

Implementation

double median(List<num> values) {
  if (values.isEmpty) return double.nan;
  final List<num> sorted = List<num>.of(values)..sort();
  final int n = sorted.length;
  if (n.isOdd) return sorted[n ~/ 2].toDouble();
  return (sorted[n ~/ 2 - 1] + sorted[n ~/ 2]) / 2;
}