Advertisement
Valeria_Fadeeva

bynary_search rust

Aug 1st, 2022 (edited)
1,554
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Rust 1.02 KB | None | 0 0
  1. use std::time::SystemTime;
  2.  
  3. // return position of the element if found
  4. fn binary_search(vec: &[u32], item: u32) -> Option<usize> {
  5.     let mut low: u32 = 0;
  6.     let mut len: u32 = vec.len() as u32 - 1;
  7.     while low <= len {
  8.         let i = ((low + len) / 2) as usize;
  9.         if vec[i] == item {
  10.             return Some(i);
  11.         } else if vec[i] > item {
  12.             len = i as u32 - 1;
  13.         } else if vec[i] < item {
  14.             low = i as u32 + 1;
  15.         }
  16.     }
  17.     None
  18. }
  19.  
  20. fn main() {
  21.     let max_item_value: u32 = 1_000_000_000;
  22.     let vec: Vec<u32> = (0..max_item_value).collect();
  23.     let item: u32 = 5;
  24.  
  25.     let sys_time = SystemTime::now();
  26.  
  27.     binary_search(&vec, item);
  28.  
  29.     let new_sys_time = SystemTime::now();
  30.  
  31.     let difference = new_sys_time
  32.         .duration_since(sys_time)
  33.         .expect("Clock may have gone backwards");
  34.     println!("{difference:?}");
  35. }
  36.  
  37.  
  38. rustc main.rs && time ./main
  39. 1.683µs
  40. 3.3 GB RAM USED
  41.  
  42. real    0m26,516s
  43. user    0m25,865s
  44. sys     0m0,650s
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement