Con respecto a la pregunta real, las cadenas [math] n [/ math] se pueden ordenar en [math] \ Theta (n ^ 2) [/ math] time. Por ejemplo, esto se puede hacer construyendo un trie y luego atravesándolo de izquierda a derecha. Esto es óptimo, ya que [math] \ Theta (n ^ 2) [/ math] ya es el tamaño de la entrada. Otra posibilidad es usar RadixSort, esto conduce a la misma complejidad de tiempo asintótica.
Los detalles de la pregunta actual mencionan la recurrencia [matemática] T (n) = 2T (n / 2) + O (n ^ 2) [/ matemática]. Es muy probable que esta recurrencia esté mal. En particular, esta recurrencia no describe el tiempo necesario para ordenar las cadenas [math] n [/ math] usando MergeSort.
¿Porqué es eso? Porque solo la cantidad de cadenas se reduce a medida que divide el problema recursivamente en subproblemas más pequeños. La longitud de esas cadenas sigue siendo la misma, y también el tiempo (peor de los casos) necesario para comparar dos cadenas .
- ¿Hay algo que una máquina de Turing pueda calcular dado un tiempo infinito que no podría calcular en una cantidad de tiempo arbitrariamente grande?
- Cómo usar el pecado y dónde usar cos en vectores
- Recientemente he entregado mis tableros (12) y quiero hacer una mecánica BTech. Espero 85% en tableros, pero estoy seguro de que no romperé el avance de IIT. ¿Qué debo hacer, dejar un año y tomar clases de IIT o elegir la universidad solo este año? ¿Es seguro dejar caer un año?
- A los 27 años, ¿soy demasiado viejo para aprender matemáticas avanzadas?
- ¿Por qué la gente encuentra divertida la programación / codificación, pero no las matemáticas?
Un análisis correcto del uso de MergeSort para ordenar cadenas es realmente muy simple. Sabemos que MergeSort realiza [math] \ Theta (n \ log n) [/ math] comparaciones para ordenar objetos [math] n [/ math]. En nuestro caso, los objetos son cadenas de caracteres [matemáticas] n [/ matemáticas], por lo tanto, cada comparación lleva tiempo [matemáticas] O (n) [/ matemáticas]. Por lo tanto, todo el algoritmo se ejecuta en [matemáticas] O (n ^ 2 \ log n) [/ matemáticas]. En el peor de los casos, esta solución es peor que la que tiene el trie por un factor de [math] \ log n [/ math].
(Una nota técnica: las estimaciones de complejidad temporal para las soluciones [matemática] \ Theta (n ^ 2) [/ matemática] suponen en silencio que el tamaño del alfabeto es una constante).