http://en.wikipedia.org/wiki/Binary_GCD_algorithmbinario GCD Algoritmo vs algoritmo de Euclides en las computadoras modernas
Esta entrada de Wikipedia tiene una implicación muy poco satisfactoria: el algoritmo binario GCD fue en un tiempo de hasta un 60% más eficiente que el estándar de Euclides Algoritmo, pero como En 1998, Knuth llegó a la conclusión de que solo había un 15% de aumento en la eficiencia en sus computadoras contemporáneas.
Bien, pasaron otros 15 años ... ¿cómo se acumulan estos dos algoritmos hoy con los avances en hardware?
¿El GCD binario continúa superando al algoritmo euclidiano en idiomas de bajo nivel pero languidece debido a su complejidad en lenguajes de nivel superior como Java? ¿O es la diferencia discutible en la informática moderna?
¿Por qué me importa que pueda preguntar? Acabo de tener que procesar como 100 mil millones de estos hoy :) Aquí hay un brindis por vivir en una era de informática (Euclid pobre).
Puede tener un punto de referencia para probarlos, solo en uno para el bucle (por ejemplo, tamaño de 1000) crear una lista de números aleatorios, y luego para todos los pares de números calcular binarios y en otro bucle calcular euclid gcd, ¿qué hay? ¿el problema? OMI, aún en las computadoras modernas el binario debería ser más rápido especialmente con números más grandes. –
Podría, y eso sería bastante representativo de un idioma en particular en un procesador en particular en un sistema operativo en particular. Esta es una operación numérica suficientemente común que me hizo sentir curiosidad en general, cuál es la solución preferida hoy en día en las aplicaciones de alto rendimiento. – jkschneider
Si tiene que hacer 100.000 millones en la actualidad, cualquier tiempo dedicado a debatir la solución más eficiente le va a costar más tiempo perdido que simplemente implementar uno u otro. –