ch08
This commit is contained in:
parent
eb9773627e
commit
10b29ad9cb
14 changed files with 164 additions and 0 deletions
32
ch8/ch10/median_int.rs
Normal file
32
ch8/ch10/median_int.rs
Normal file
|
|
@ -0,0 +1,32 @@
|
|||
use std::collections::HashMap;
|
||||
|
||||
fn main() {
|
||||
let mut numbers = vec![100, 23, 1, 2, 100, 38, 57, 100, 23, 44, 163];
|
||||
numbers.sort();
|
||||
|
||||
let is_even = numbers.len() % 2 == 0;
|
||||
let median: i32;
|
||||
let mut count = HashMap::new();
|
||||
|
||||
if is_even {
|
||||
let n1 = numbers[(numbers.len() / 2) - 1];
|
||||
let n2 = numbers[numbers.len() / 2];
|
||||
median = (n1 + n2) / 2;
|
||||
} else {
|
||||
median = numbers[numbers.len() / 2];
|
||||
}
|
||||
|
||||
let mut mode: i32 = 0;
|
||||
|
||||
for num in numbers {
|
||||
let entry = count.entry(num).or_insert(0);
|
||||
*entry += 1;
|
||||
|
||||
if *entry > count.get(&mode).copied().unwrap_or(0) {
|
||||
mode = num;
|
||||
}
|
||||
}
|
||||
|
||||
println!("median: {median}");
|
||||
println!("mode: {mode}");
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue