Замена значений двух чисел

Очень часто надо поменять значения двух целочисленных переменных A и B. Самое очевидное решение - ввести третью переменную и с её помощью сделать так -
<!--c1-->
CODE
<!--ec1-->С:=A;
A:=B;
B:=C;<!--c2-->
<!--ec2-->
Но с точки зрения экономии ресурсов, быстрее будет так -
<!--c1-->
CODE
<!--ec1-->A:=А+В
В:=А-В
А:=А-В<!--c2-->
<!--ec2-->
Конечно можно говорить о том, что сейчас компьютеры настолько быстры, что такая экономия маловажна. Она маловажна, когда такая операция нужна два-три раза в программе, а например в каком-нибудь графическом движке или сложной инженерной системе, это может встречаться до тысячи раз в секунду... Вот вам и экономия.



Опубликовал admin
7 Ноя, Пятница 2003г.

Комментарии

Здравствуйте. Я совсем новичок в программировании и учусь не на мегакодерской специальности, но есть, на мой взгляд, ещё более быстрый способ обмена значениями целочисленных переменных при помощи XOR.Вот кусок кода (Pascal):
a:=a xor b;
b:=a xor b;
a:=a xor b;

Кстати, в вашем примере есть вероятность выхода суммы за пределы допустимых значений и потери данных




Программирование для чайников.