Creo que definitivamente al menos debería comprender cómo funcionan los diversos tipos, cuáles son sus complejidades de tiempo, por qué tan grande una entrada hace que un “ordenamiento rápido” (digamos Quicksort) supere a un “ordenamiento lento” (digamos ordenamiento por inserción), etc.
La clasificación también es una gran oportunidad para familiarizarse con varios conceptos centrales de los algoritmos:
- Es fácil convencerse de que la ordenación por inserción se ejecuta en tiempo cuadrático en el peor de los casos. Sin embargo, en entradas lo suficientemente pequeñas, aún supera a los algoritmos de clasificación más elegantes.
- Quicksort y merge sort son una excelente manera de introducir el paradigma de diseño de algoritmos de divide y vencerás. Sus análisis también son muy interesantes, ya que implican la resolución de ecuaciones de recurrencia, que son la maquinaria esencial para analizar otros algoritmos de divide y vencerás.
- Puede hacer que Quicksort se ejecute en tiempo cuadrático si adapta la entrada. Sin embargo, si aleatoriza Quicksort para que elija el pivote al azar, entonces realiza como máximo O (n log n) comparaciones con alta probabilidad. Por lo tanto, es una excelente manera de introducir algoritmos aleatorios y sus análisis.
Hay un límite inferior general que dice que no existe un algoritmo de clasificación basado en comparación que se ejecute más rápido que n log n time. Piensa en lo bueno que es este resultado: no existe tal algoritmo. ¡Entonces también es una gran oportunidad para introducir límites más bajos!
- ¿Por qué la notación O grande no se parece más a O (c) y O (cn) en lugar de a O (1) y O (n), esto último no tiene sentido?
- ¿Cómo resolver el problema de corchetes en SPOJ (SPOJ: SQRBR)?
- ¿Cuál es el problema matemático más difícil que existe?
- ¿Cuál es la mejor manera de estudiar la estructura de datos de árbol?
- Encuentre la suma máxima del subconjunto de longitud k de un conjunto dado, de modo que la suma sea estrictamente menor que M
Además, ¡hay * algoritmos * que se ejecutan en tiempo “pseudo-lineal” pero no se basan en la comparación y solo funcionan para enteros positivos!
Podría continuar, pero la respuesta corta es que estudiar varios algoritmos de clasificación puede presentarle muchos de los temas más centrales en algoritmos. Es mucho más que solo conocer cinco algoritmos de clasificación diferentes.