diff --git a/Cargo.toml b/Cargo.toml index 7569f0e..d2f87b8 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -2,7 +2,7 @@ name = "stalin-binary-search" description = "alike binary search but any checking element which is not target one is eliminated" license = "AGPL-3.0-only" -version = "0.0.3" +version = "0.0.4" authors = ["Miezhiko "] repository = "https://github.com/Miezhiko/stalin-binary-search" edition = "2021" diff --git a/src/vec.rs b/src/vec.rs index 0abf76d..02ca51f 100644 --- a/src/vec.rs +++ b/src/vec.rs @@ -26,10 +26,10 @@ impl StalinFind for Vec { } else { self.stalin(i, 0, self.len() - 1) } - } else if self[m - 1] > i { - self.stalin(i, l, m - 1) + } else if self[m - 1] < i { + self.stalin(i, m, r - 1) } else { - self.stalin(i, m - 1, r - 1) + self.stalin(i, l, m - 1) } } } @@ -87,11 +87,11 @@ mod tests { let mut unsorted = vec![33, 55, 3, 4, 7657, 6, 7, 8]; assert_eq!( unsorted.stalin_find(3), - Some(2), + Some(0), ); assert_eq!( unsorted, - vec![33, 55, 3, 7657, 7, 8], + vec![3, 7657, 7, 8], ); if let Some(find_7) = unsorted.stalin_find(7) { assert_eq!(