Entero plantilla de búsqueda binaria

plantilla binaria

  • idea Algoritmo: Supongamos que un valor objetivo en un intervalo cerrado [l, r], cada intervalo de tiempo de longitud se reduce a la mitad, cuando [l, r]el tiempo, es decir, para encontrar el objetivo.

Una plantilla

El intervalo en [l, mid]y [mid + 1, r]operación cuando se está actualizando l = mid + 1o r = mid, sin cálculo 1 mediados.

while (l < r) {
    int mid = l + r >> 1;
    if (check(mid)) r = mid;
    else l = mid + 1;
    return l;
}

plantilla de dos

El intervalo en [l, mid - 1]y [mid, r]cuando está al día r = mid - 1o l = midañadir 1 al calcular mitad.

while (l < r) {
    int mid = l + r + 1>> 1;
    if (check(mid)) l = mid;
    else r = mid - 1;
    return l;
}

Supongo que te gusta

Origin www.cnblogs.com/clown9804/p/12449217.html
Recomendado
Clasificación