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.
- ¿Cuál es la diferencia entre un código y un algoritmo?
- ¿Qué función se usa para aceptar números aleatorios entre límite inferior y superior en C?
- ¿Qué es la representación de colas usando array?
- ¿Qué representa un peso en los bordes en un gráfico ponderado en la teoría de gráficos?
- ¿Es razonable delegar decisiones importantes sobre algoritmos?