typestar

Búsqueda binaria en Rust

Reduce el rango a la mitad en cada paso, con la aritmética de índices que el borrow checker acepta.

fn binary_search(items: &[i32], target: i32) -> Option<usize> {
    let (mut lo, mut hi) = (0, items.len());
    while lo < hi {
        let mid = (lo + hi) / 2;
        if items[mid] == target {
            return Some(mid);
        }
        if items[mid] < target {
            lo = mid + 1;
        } else {
            hi = mid;
        }
    }
    None
}

Palabras clave y builtins usados aquí

El intento, en números

Líneas
15
Caracteres a escribir
260
Tokens
96
Ritmo de tres estrellas
90 tpm

Al ritmo de tres estrellas de 90 tokens por minuto, este intento toma unos 64 segundos.

Escribe este fragmento

Paso 4 de 8 en Colecciones; paso 33 de 39 en Fundamentos del lenguaje.

← Anterior Siguiente →