Quick actions

cmd+k|ctrl+k

Navigation

Languages

2. Binaria

Snippet info

Language

Rust

Visibility

public

Author

laenergiadespuesdelano

Created

2020-10-26T20:40:14Z

Updated

2020-10-26T20:40:14Z

pub fn busqueda_binaria<T: PartialEq + PartialOrd>(a: &T, arr: &[T]) -> i32 {
    let mut i = -1; 

    if arr.is_empty() {
        return i;
    }

    let mut x = 0;
    let mut y = arr.len() - 1;

    while x < y {
        let z = x + (y - x) / 2;

        if &arr[z] > a{
            y = z - 1;
        } else if &arr[z] < a {
            x = z + 1;
        } else {
            x = z;
            break;
        }
    }

    if &arr[x] == a {
        i = x as i32;
        return i;
    } else {
        return i;
    }
}
fn main() {
    let arr = busqueda_binaria(&25, &vec![25, 80, 29, 20, 25]);
    println!("{}", arr);

    let arr = busqueda_binaria(&855, &vec![25, 26, 31, 34, 10]);
    println!("{}", arr);
}
INFO