En la complejidad temporal de un algoritmo, ¿por qué puede considerarse útil que una operación elemental tome “tiempo unitario”?

Porque hay una pieza (según tu pregunta) que te estás perdiendo. Adoptamos un modelo de cálculo de cómo tratamos las operaciones. Puede cambiar las reglas de lo que es exactamente una operación elemental cambiando el modelo de cálculo. En modelos comunes como el modelo RAM, cosas como la suma, la multiplicación, la asignación y algunos otros como una operación elemental.

¿Por qué puede ser? Porque así es como funciona ese modelo. Pero, la respuesta mucho más simple (y por qué lo hacemos en el modelo RAM) es que, en la práctica, cosas como la suma y la multiplicación no toman mucho tiempo, y con respecto a cómo funciona un algoritmo (generalmente dentro de lo razonable), tomar tiempo constante (independiente del tamaño de entrada ). Cuando cuenta estas operaciones, la cantidad de tiempo que lleva realizar esa operación es varias veces constante la cantidad de veces que sucede. Por lo tanto, estas constantes no contribuyen en nada a la complejidad del tiempo, ya que no afectan asintóticamente la tasa de crecimiento de la función de complejidad utilizada para analizar el algoritmo. Por lo tanto, no es diferente asintóticamente que estas operaciones se traten como unidades a contar. Es independiente de la máquina cuando determina la complejidad del tiempo, pero todo se basa en cómo forma la función de crecimiento, que a su vez se basa en el modelo de cálculo. Por lo general, puede suponer dentro de lo razonable que las personas están utilizando un modelo similar al modelo RAM, a menos que le indiquen lo contrario.

Debido a que cualquier constante es menor que n, ya que tiende al infinito, entonces 1, 10, 100 pasos son insignificantes en comparación con el infinito, es por eso que son O (1), no agregan nada al tiempo de ejecución de la función.

Si su algoritmo tiene una operación que siempre toma 1 millón de pasos y ocurre solo una vez, es más pequeña que algo que ocurre millones de veces.

Es por eso que en las n más pequeñas desea tomar nota de sus constantes, una O (1000000n) es peor que O (n ^ 3) para las n pequeñas.