1) Una gran variedad ordenada de cadena SA;
2) Una cadena de prefijos P;
de salida:
El índice de la primera cadena que coincide con el prefijo de entrada si la hay. Si no existe tal coincidencia, la salida será -1.
Ejemplo: SA = { "ab", "abd", "ABDF", "ABZ"} P = "abd" La salida debe ser 1 (índice a partir de 0).
¿Cuál es la forma más algorítmica de hacer este tipo de trabajo?
El mejor tiempo de búsqueda de casos para un árbol raíz es O (n) donde n es el número de caracteres, mientras que la búsqueda binaria toma O (log m) donde m es el tamaño de la lista. No es necesariamente cierto que la búsqueda de radix sea más rápida. –
Arácnido: Esto no es verdad. Incluso en el mejor de los casos (donde hay una coincidencia), la búsqueda binaria es O (n + log m), ya que debe leer todo el prefijo para comprobar si coincide. En el peor de los casos, es O (nlogm). – Brian
@Arácnido: +1 para el comentario de Brian, más O (n) es la búsqueda de CASO PEOR para el árbol de raíz, donde hay una coincidencia y debe leer el prefijo completo. –