在下面的程序中,binary_search
返回 Err(2)
而不是预期的 Ok(0)
。这是错误吗?
fn main() {
let x = vec!["slot", "s"];
let u = x.binary_search(&"slot");
println!("{:?}", u);
}
最佳答案
否。
binary_search
需要一个已排序 输入,但您提供了一个随机排序的输入。
正如查尔斯·巴贝奇 (Charles Babbage) 的著名属性:垃圾输入,垃圾输出。
注意:在 C++ 中,我在对未排序的输出执行二进制搜索时遇到过崩溃,你很幸运,它是 Rust ;)
关于rust - 为什么 slice::binary_search 返回不正确的结果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37804973/