Ответ 1
Ответ, конечно, "это зависит". Это зависит от оборудования, компилятора, конкретной реализации, независимо от того, что я забыл. На машинах с медленным делением двоичный GCD имеет тенденцию превосходить евклидовой алгоритм. Я сравнивал это пару лет назад с Pentium4 в C, Java и несколькими другими языками, в целом в этом тесте, двоичный gcd с 256-элементной таблицей поиска разбил алгоритм Евклида в 1,6 и почти 3. Евклидова подошли ближе, когда вместо того, чтобы сразу делить, сначала были выполнены несколько циклов вычитания. Я не помню цифры, но бинарные все еще были значительно быстрее.
Если машина имеет быстрое деление, все может быть разным, так как для евклидова алгоритма требуется меньше операций. Если разность затрат между делениями и вычитанием/сдвигами достаточно мала, бинарный будет медленнее. Какой из них лучше в ваших обстоятельствах, вы должны выяснить, сравнивая себя.