¿Cuál es el propósito de un análisis amortizado?

En informática, el análisis amortizado se utiliza para conocer el tiempo de ejecución promedio de un algoritmo u operación en una estructura de datos, dado que la operación ocurre muchas veces.

Por ejemplo, insertar en una matriz en C ++ o Java es una operación de tiempo constante, excepto cuando se necesita aumentar el tamaño de la matriz. En este punto, el contenido de la matriz debe copiarse en una nueva matriz que sea dos veces el tamaño del original: una operación O (n) (n es el tamaño de la matriz, que continuará cambiando a medida que se agreguen más contenidos).

En la estructura de datos que describí, cada enésima operación tendrá la complejidad O (n), mientras que todas las demás serán O (1). Entonces, en promedio, el tiempo de ejecución de agregar a una matriz será O (1). Esto se considera el tiempo de ejecución amortizado, y es útil ya que nos dice cómo se comporta el algoritmo cuando se repite.

La amortización es una forma de pagar la deuda en varias cuotas. Esto generalmente es utilizado por las empresas en sus balances para que se vean mejor. Por ejemplo, supongamos que una empresa compra un gran servidor por algún costo. En realidad, es un gasto único, y el balance general para ese mes en particular recibe un gran golpe. Lo que las empresas hacen entonces es “amortizar” este activo intangible en los próximos años con cierta depreciación en el valor del activo. Esto mejora el “ingreso neto” de la empresa.

More Interesting

¿Cómo funciona la informática afectiva?

¿Sería posible que alguien dentro de 50 años descargue archivos de una computadora a partir de 2017 y los convierta a un formato viable para una computadora de esa época? Suponiendo que la computadora funciona correctamente y tiene una fuente de alimentación.

¿Es posible competir con las principales empresas de realidad virtual?

¿Cómo se relacionan estrechamente la ingeniería informática (CSE) y las matemáticas discretas?

¿Es posible detectar si un servidor está realmente inactivo, o si simplemente responde lentamente en un sistema distribuido?

¿Por qué hay virus informáticos?

¿Cuál es la evolución de la arquitectura del sistema?

¿Hay alguna forma de contribuir al código abierto en Selenium Webdriver? Si es así, ¿cuáles son esos?

¿Puede una biblioteca de aprendizaje automático integrarse con Django? ¿Si es así, cómo?

¿Cuáles son algunas paradojas interesantes en informática?

¿Cuáles son algunas buenas prácticas / consejos de optimización al crear software de procesamiento de imágenes o visión por computadora?

¿Debo asistir a UChicago o UIUC si planeo estudiar informática?

Pasé más tiempo leyendo blogs de gestión de productos que codificación, a pesar de que estoy cursando una licenciatura en CS. Perdido :( ¿Cómo debo pasar mi último año?

¿Cuáles son las similitudes entre el aprendizaje automático y la econometría?

¿Cuál es actualmente la mejor plataforma de casa inteligente?