1pub fn percentile_rank(mut data: Vec<u64>) {
2 let data_len = data.len();
3 let percentil = 100;
4 data.sort();
5 println!("data :{:?}", data);
6 let mut rank = (percentil as f32/100.0 * data_len as f32) as usize;
7 let mut max_indx = data_len as usize - 1 as usize;
8 let score: u64 = data[max_indx];
9 let mut position = 1;
10
11
12 println!("rank {:?}, score: {}, position: {:?}, percentile: {:?}", rank, score, position, percentil);
13
14 while max_indx!= 0{
15 let percentile = (rank as f32 /data_len as f32 * 100.0) as u8;
16 rank = rank -1;
17 if data[max_indx] == data[max_indx -1]{
18 println!("rank {:?}, score: {}, position: {:?}, percentile: {:?}", rank, data[max_indx -1], position, percentile);
19 } else {
20 position = position + 1;
21 println!("rank {:?}, score: {}, position: {:?}, percentile: {:?}", rank, data[max_indx -1], position, percentile);
22 }
23 max_indx -= 1 ;
24 }
25
26}