Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- fn mean(vec: &[i32]) -> f64 {
- let sm : i32 = vec.iter().fold(0, |sm, val| sm+val);
- return (f64::from(sm))/(vec.len() as f64);
- }
- fn median(mut vec: Vec<i32>) -> f64 {
- vec.sort();
- let half = (vec.len())/2;
- let med = match vec.len() % 2 {
- 1 => f64::from(vec[half]),
- _ => mean(&vec[(half-1)..(half+1)])
- };
- return med;
- }
- fn main(){
- let st: &str = "1 23 45 32 65 7 8 98 58 43 21";
- let vec: Vec<i32> = st
- .split_whitespace()
- .map(
- |e|
- match e.parse::<i32>() {
- Ok(i) => i,
- _ => 0
- }
- )
- .collect();
- println!("Sorted vector{:?}", vec);
- let med = median(vec);
- println!("Median {:?}", med);
- }
Add Comment
Please, Sign In to add comment