La respuesta de Jeremy Hurwitz es esencialmente correcta, pero permítanme aclarar algunos puntos.
Los términos más utilizados son Complejidad de caso promedio y Tiempo esperado en el peor de los casos. El segundo solo tiene sentido para analizar un algoritmo aleatorio, uno que arroja monedas (independientemente de la entrada) como parte del algoritmo. Por ejemplo, QuickSort donde el elemento pivote se elige al azar cada iteración es un algoritmo aleatorio. Luego decir que el algoritmo tiene el Tiempo esperado en el peor de los casos T (n) es decir que, en cualquier entrada de tamaño n, x, la cantidad promedio de tiempo que el algoritmo tarda en x es como máximo T (n). Tenga en cuenta que aquí, promedio se refiere al promedio sobre todas las opciones aleatorias del algoritmo, y se mantiene independientemente de la entrada.
La complejidad de caso promedio supone una distribución sobre las entradas, como las matrices aleatorias de n enteros en el rango entre 1 yn cubos. Decir que un algoritmo (ya sea aleatorio o determinista) funciona en el tiempo T (n) es decir que para casi todas las entradas x de la distribución, el algoritmo se ejecuta en la mayoría de los pasos de T (n). Sin embargo, puede haber algunas x para las cuales el tiempo de ejecución es mucho peor. Por ejemplo, supongamos que observamos Quicksort, donde el primer elemento siempre se elige como pivote. Luego, para la mayoría de las matrices, funciona en tiempo O (n log n), pero para una matriz ordenada, se necesita un gran omega de n tiempo cuadrado.
- ¿Qué estructuras de datos son más eficientes que las tablas hash?
- ¿Cuáles son los principales problemas en la informática distribuida?
- ¿Cuáles son los pasos necesarios para escribir trabajos de investigación?
- ¿Cuáles son los trabajos académicos clásicos en finanzas computacionales / comercio algorítmico?
- ¿Qué tipo de investigación puedo hacer en Computer Vision como estudiante?
Lo complicado del análisis de casos promedio es lograr que la distribución de las entradas refleje la frecuencia real de las entradas del “mundo real”. Es muy poco probable que se ordene una matriz aleatoria, pero es muy probable que una matriz dada al algoritmo como entrada se ordene o casi se ordene, porque a la gente le gusta ordenar las matrices, modificarlas un poco y recurrir. Como se mencionó en otra respuesta, el análisis suavizado es un modelo híbrido que combina algunos aspectos de cada uno y está destinado a ayudar a eludir las críticas anteriores.