Skip to content

Commit dcb0446

Browse files
committed
binary search
1 parent 309e136 commit dcb0446

File tree

3 files changed

+43
-0
lines changed

3 files changed

+43
-0
lines changed

bin_search/Cargo.lock

+4
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

bin_search/Cargo.toml

+4
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
[package]
2+
name = "bin_search"
3+
version = "0.1.0"
4+
authors = ["chunhui.yao <[email protected]>"]

bin_search/src/main.rs

+35
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
fn search(array: &mut Vec<i32>, target: i32)->i32{
2+
array.sort();
3+
println!("{:?}, {}", *array, target);
4+
let mut start = 0;
5+
let mut end = array.len();
6+
while start < end {
7+
let mid = (start + end) / 2;
8+
//println!("{}", mid);
9+
let x = array[mid];
10+
if target < x {
11+
end = mid;
12+
}
13+
else if target > x {
14+
start = mid + 1;
15+
}
16+
else {
17+
return mid as i32;
18+
}
19+
}
20+
return -1;
21+
}
22+
23+
fn main() {
24+
println!("{}", search(&mut vec![1, 2, 3, 4, 5, 7, 10, 20], 0));
25+
println!("{}", search(&mut vec![1, 2, 3, 4, 5, 7, 10, 20], 1));
26+
println!("{}", search(&mut vec![1, 2, 3, 4, 5, 7, 10, 20], 2));
27+
println!("{}", search(&mut vec![1, 2, 3, 4, 5, 7, 10, 20], 3));
28+
println!("{}", search(&mut vec![1, 2, 3, 4, 5, 7, 10, 20], 4));
29+
println!("{}", search(&mut vec![1, 2, 3, 4, 5, 7, 10, 20], 5));
30+
println!("{}", search(&mut vec![1, 2, 3, 4, 5, 7, 10, 20], 6));
31+
println!("{}", search(&mut vec![1, 2, 3, 4, 5, 7, 10, 20], 7));
32+
println!("{}", search(&mut vec![1, 2, 3, 4, 5, 7, 10, 20], 10));
33+
println!("{}", search(&mut vec![1, 2, 3, 4, 5, 7, 10, 20], 20));
34+
println!("{}", search(&mut vec![1, 2, 3, 4, 5, 7, 10, 20], 30));
35+
}

0 commit comments

Comments
 (0)