RosettaCodeData/Task/Averages-Median/Rust/averages-median.rust

16 lines
358 B
Text
Raw Permalink Normal View History

2015-11-18 06:14:39 +00:00
fn median(mut xs: Vec<f64>) -> f64 {
// sort in ascending order, panic on f64::NaN
xs.sort_by(|x,y| x.partial_cmp(y).unwrap() );
let n = xs.len();
if n % 2 == 0 {
2016-12-05 22:15:40 +01:00
(xs[n/2] + xs[n/2 - 1]) / 2.0
2015-11-18 06:14:39 +00:00
} else {
xs[n/2]
}
}
fn main() {
let nums = vec![2.,3.,5.,0.,9.,82.,353.,32.,12.];
println!("{:?}", median(nums))
}