eratosthenes/statistics/
median.rs1pub fn median(array: &mut [f64]) -> f64 {
2 if array.is_empty() { panic!("Cannot compute the median of an empty vector") };
3
4 array.sort_by(|a, b| a.partial_cmp(b).unwrap());
5
6 let mid = array.len() / 2;
7
8 if array.len() % 2 == 0 {
9 (array[mid - 1] + array[mid]) / 2.0
10 } else {
11 array[mid]
12 }
13}
14
15#[cfg(test)]
16mod tests {
17
18 use super::*;
19
20 #[test]
21 fn median_test() {
22 assert_eq!(median(&mut vec![1.0, 2.0, 2.0, 3.0, 1.0]), 2.0);
23 }
24}