Eso depende del contexto. En informática teórica, generalmente cada algoritmo de tiempo polinómico se considera "eficiente". En algoritmos de aproximación, por ejemplo, un tiempo de ejecución de se consideraría eficiente, aunque en la práctica no se podrá utilizar para ningún valor razonable de . Un algoritmo para SAT que se ejecuta en sería un avance sorprendente. ϵ n 2 100norte1 / ϵ1 / ϵϵnorte2100
En algoritmos clásicos, es decir, algoritmos de los años 80 y anteriores, los tiempos de ejecución inferiores a o menos (piense en la multiplicación de matrices, la coincidencia de costos mínimos, los flujos, la programación lineal) se consideran eficientes. Todavía son considerados eficientes por la mayoría de las personas, diría. Por supuesto, un algoritmo no se considera eficiente si se conoce un algoritmo , como por ejemplo para la clasificación.n 2 n log nnorte3norte2n lognorte
Hoy en día existe una tendencia hacia algoritmos sublineales o algoritmos de transmisión que pueden manejar terabytes de datos. Intente usar la multiplicación de matrices para calcular el rango de página de todas las páginas en el índice de Google. Eso no funcionará.
Por supuesto, aunque ciertamente es útil, el tiempo de ejecución asintótico de un algoritmo no cuenta toda la historia. Hay algoritmos que tienen un buen tiempo de ejecución asintótico, pero constantes que son tan grandes que efectivamente no se pueden usar. Siempre. Lipton los llama Algoritmos Galácticos . Robert Sedgewick incluso afirma que los límites del peor de los casos son "a menudo inútiles para la predicción, a menudo inútiles para las garantías" y "el análisis del peor de los casos es inútil para predecir el rendimiento" en su discurso Poniendo la ciencia de nuevo en informática .