Por lo general, está tratando de encontrar la complejidad del tiempo de operaciones completas en números, eliminando todas las constantes e incluso tomando el término de crecimiento más rápido de una suma del costo real. Esto fue, cada operación es tiempo constante.
Sin embargo, si observa el número de operaciones en relación con el número de bits, o en relación con el valor numérico, cada operación tiene un costo diferente.
Por ejemplo,
- ¿Cuáles son las diferencias entre las estructuras de datos y los algoritmos?
- ¿Cuál es la estructura de datos utilizada para realizar la recursividad?
- Cómo implementar prácticamente algoritmos enseñados por Andrew Ng en su curso de aprendizaje automático
- ¿Cuál es el mejor algoritmo de reconocimiento de patrones hoy?
- ¿Cómo demostramos que un gráfico conectado con n nodos y más de n-1 aristas debe contener ciclo?
- Las operaciones en modo bit son tiempo constante en relación con el número de bits, porque todas pueden realizarse en paralelo.
- La suma es lineal (tiempo de sumador medio) o tiempo logarítmico (transporte anticipado en lugar de tiempo de espera).
- El cambio es lineal cuando se usa una tubería, o más probablemente constante cuando se usa una palanca de cambios de barril.
- La multiplicación, cuando se realiza como sumar (llevar anticipación) y tamizar (desplazador de barril) es el número de bits de un multiplicando multiplicado por el costo de cada ciclo de adición.
- La división es típicamente un número de bits de wrt lineal en el numerador.
- La exponenciación de enteros es el costo de una sola multiplicación por [math] ceil (log_2 ([/ math] número de bits de exponente [math])) [/ math].
- La descomposición primaria de fuerza bruta de un número [matemática] N [/ matemática] toma como máximo los pasos de división [matemática] \ sqrt {N} [/ matemática].
Por lo tanto, depende del algoritmo utilizado. En general, puede suponer que los mejores algoritmos posibles se implementan en el hardware, pero debe verificar la implementación del software siempre que sea posible.
Luego está la aritmética de gran número, que siempre se realiza en software, y generalmente puede mirar el código y verificar la complejidad usted mismo.