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é.
- ¿Algún algoritmo de aprendizaje profundo quedará obsoleto algún día con los algoritmos tradicionales? ¿O los algoritmos de aprendizaje profundo solo son adecuados para problemas específicos?
- ¿Los desarrolladores de Google realmente usan conceptos como la notación O grande para determinar el tiempo de ejecución de un algoritmo en un proceso de codificación diario?
- ¿Hay algún recurso donde pueda practicar problemas de programación dinámica según sus tipos?
- ¿La complejidad de los algoritmos de clasificación está relacionada con la cantidad de suposiciones que hago? ¿Por qué?
- ¿Cuál es la mejor manera de ingresar al último proceso de aprendizaje de algoritmos de reconocimiento facial?
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.