Cómo entender el análisis amortizado y por qué lo necesitamos

Un profesor mío dio un buen ejemplo.

Asumiendo que estamos analizando usando O grande.

Ahora considere que estamos midiendo el tiempo que toma servir una taza de café.

Digamos que el tiempo que se tarda en verter una taza es de unos segundos. Ese sería el caso más rápido. Sin embargo, hay otro caso. ¿Qué pasa si el dispensador de café está vacío? Tendría que tomar más tiempo para hacer más café, podría tomar 15 minutos

El peor de los casos, o gran O, en este caso es de 15 minutos. Pero eso es muy frecuente. A la larga, es más probable que el tiempo sea de unos pocos segundos. Este es el tiempo amortizado.

Básicamente es el tiempo promedio sobre múltiples ejecuciones del algoritmo. Es necesario en el sentido de que describe el rendimiento típico que se puede esperar en el transcurso de la ejecución del algoritmo muchas veces. Elimina el engaño de ciertos algoritmos que tienen el mismo tipo de problema descrito en el ejemplo del café. Lo siento, no puedo dar un ejemplo práctico. Quizás alguien aquí pueda.

More Interesting

En Python, dada la siguiente permutación de a, b, c, d, e, f, g, h, i, j, ¿cuál es la próxima permutación en el orden lexicográfico (diccionario)?

Cómo resolver la pregunta 'Mango Plantation' en Codechef

¿Podría hacerlo sin espacio adicional y en tiempo de ejecución O (n)?

Algoritmos: ¿Cómo encuentro un elemento en una secuencia que sea más pequeño que mi número en la secuencia, a la izquierda de mi número y a la derecha de todos esos elementos?

¿Cuál es el mejor curso de análisis de datos y algoritmos presentado con el lenguaje Python?

¿Cómo puede el paralelismo mejorar el algoritmo de fuerza bruta?

¿Cómo se debe aprender la codificación, haciendo algoritmos, desde el nivel básico, dado que no tiene experiencia en codificación? (especialmente desde el punto de vista de la colocación y también dado el hecho de que me queda un año para que comience mi temporada de colocación).

¿Qué significa asintóticamente en términos simples?

Cómo implementar un algoritmo C4.5 usando MATLAB

¿Es una persona inteligente debido a los 'algoritmos' que usa su cerebro? Si es así, ¿alguien podría copiar ese 'algoritmo' para ser igualmente inteligente?

En lugar de usar una matriz y ordenar elementos de mayor a menor, ¿cómo puedo usar un montón?

¿Cómo saben las computadoras cuándo comienza y termina una cadena binaria?

Cómo ordenar la lista de números dada en orden de registro (n)

¿Cómo se almacena una matriz bidimensional en la memoria?

¿Cuáles son algunas aplicaciones inteligentes de búsqueda binaria?