Una cosa a tener en cuenta entre los idiomas es que los límites de la aritmética pueden diferir. Esto puede dar resultados diferentes para aparentemente el mismo algoritmo en diferentes idiomas o incluso en diferentes procesadores.
C ++:
int i = ~0; // value of i depends on the processor (bitness).
- ¿Cuáles son las mejores prácticas para acelerar el pensamiento de mi algoritmo?
- ¿Cómo podemos encontrar la segunda ruta más pequeña entre dos nodos en un gráfico ponderado / no ponderado de manera eficiente?
- ¿Soy solo yo o el algoritmo recursivo de Fibonacci es brillantemente complejo?
- ¿Qué debe aprender primero, algoritmos y DS o un lenguaje de programación?
- ¿Cómo se realiza la reducción del tiempo polinómico de UHAMPATH a UHAMCYCLE?
Java:
int i = ~0; // value of i is fixed, by the specification.
Digo “aparentemente” ya que el algoritmo ejecutado por la máquina es una transformación del lenguaje de entrada que es una implementación del algoritmo. El otro caso a considerar es si el algoritmo y / o la implementación es determinista (algoritmo no determinista – Wikipedia). Los bucles que iteran sobre mapas hash tienden a iterar sobre ellos en orden f (hash) . En implementaciones típicas, el orden tiende a depender de una función hash proporcionada por el lenguaje. En Go, estos bucles se especifican como no deterministas (aunque no aleatorios). En la mayoría de los idiomas, los resultados serán deterministas, pero no coincidirán con los resultados de otro idioma.