pub fn exponential_search<T: Ord>(list: &[T], target: &T) -> Option<usize>Expand description
Exponential search — avval oraliqni 1, 2, 4, 8… deb kengaytirib topadi, so’ng shu oraliqda binary search qiladi.
Qachon kerak: massiv juda katta (yoki uzunligi noma’lum) va qidirilayotgan
element boshiga yaqin bo’lsa. i — javob indeksi bo’lsa, narxi O(log i).
- Time: O(log i), Space: O(1). Shart: tartiblangan.
§Misol
use rust_algorithms::searching::exponential_search;
let v: Vec<i32> = (0..1_000_000).collect();
assert_eq!(exponential_search(&v, &5), Some(5)); // deyarli bir zumda