Explicación en términos simples
Si dice que una operación tiene un tiempo amortizado de [math] \ Theta (1) [/ math], eso significa que la operación se ejecutará en [math] \ Theta (1) [/ math] en promedio si se ejecuta suficientes veces en sucesión. Eso significa que en algunos escenarios, podría ejecutarse en [matemáticas] \ Theta (n) [/ matemáticas] en el tiempo o peor. Es similar al análisis de complejidad de tiempo de “caso promedio”, pero no necesariamente hace suposiciones sobre los datos de entrada. Más bien, hace suposiciones sobre el patrón de uso de la operación amortizada.
Ejemplo
Por ejemplo, considere una lista que se implementa con una matriz redimensionable. Decimos que insert () se ejecuta en [math] \ Theta (1) [/ math] tiempo amortizado por operación. Sin embargo, cuando la matriz interna está llena, tenemos que generar una nueva matriz que tal vez sea el doble del tamaño de la matriz anterior y copiar los valores anteriores antes de poder insertar el nuevo valor. Esto lleva tiempo [math] \ Theta (n) [/ math]. Pero sabemos que no todas las inserciones en la matriz activarán el cambio de tamaño. La mayoría de las operaciones se ejecutarán en tiempo constante. Más exactamente, cada operación [matemática] n [/ matemática], tenemos que cambiar el tamaño de la matriz. Si tenemos una operación que requiere [matemática] \ Theta (n) [/ matemática] cada [matemática] n [/ matemática] veces que se llama, entonces en la operación regular de un programa, podemos esperar [matemática] \ Theta (1) [/ math] tiempo por operación.
- He practicado más de 300 preguntas de algoritmos en LintCode y LeetCode. He estado desempleado durante casi 9 meses y obtuve 8 entrevistas y todas fallaron en la prueba de codificación. Todavía no puedo recibir ninguna oferta. ¿Qué tengo que hacer?
- ¿Puedo mejorar el rendimiento del árbol negro rojo eliminando los nodos negros cero o usando el valor centinela?
- ¿Qué es el algoritmo de optimización de memoria?
- ¿Es un árbol binario perfecto también un árbol binario completo?
- ¿Qué algoritmo es mejor para datos no estructurados?