Se trata de suposiciones.
Cuando solo se le permite usar comparaciones y puede acceder a sus datos aleatoriamente, entonces su límite es estrecho.
Los algoritmos específicos de dominio, por ejemplo, la ordenación de enteros, pueden ser más rápidos.
- ¿Qué algoritmo se debe usar para encontrar que hay una conexión en cada dos vértices en un gráfico dirigido?
- Cómo resolver este problema sin obtener un TLE
- ¿Cuál es la diferencia entre árboles binarios completos y completos?
- ¿Habrá diferentes algoritmos para implementar la inserción y eliminación de una estructura de datos como b árboles?
- Cómo ordenar una lista anidada en Python
Si tiene algún conocimiento acerca de sus datos, por ejemplo, el rango numérico, a veces puede terminar con algoritmos más rápidos, consulte Clasificación y variantes de Radix o Counting.
Cuando impone límites adicionales al algoritmo, la complejidad también puede aumentar.
Por ejemplo, si puede comparar solo elementos adyacentes, puede terminar con $ O (n ^ 2) $ en el peor de los casos (es decir, clasificación de burbujas).
Si solo puede acceder a elementos a cierta distancia, entonces se desconoce la respuesta exacta (consulte Clasificación de Shell).
Entonces, depende, y siempre es bueno entender su problema antes de buscar una solución.