Cuando la pregunta se busca grande o un pequeño número de la k-ésima k-ésimo tiempo, por lo general con una búsqueda binaria.
Binaria plantilla de búsqueda:
求第k小个 mientras que (l <r) { int mediados = l + (r - l) / 2; int cnt = <= mediados的数量; si (cnt <k) l = mediados + 1; más r = centro; } 求第k大个 mientras que (l <r) { int mediados = l + (r - l) / 2 + 1; int cnt = (> = mediados的数量); si (cnt <k) r = mid - 1; más l = centro; }
Al ordenar los elementos, se puede comprobar si se puede utilizar el doble puntero