Страница 3 из 3

Re: Требуется програмист со знанием алгоритмов

Добавлено: 12 ноя 2014, 13:17
WingRabbit
Ega23 писал(а):
WingRabbit писал(а):Давайте еще алгоритмы пощелкаем, а?
Есть массив INT. Нужно перевернуть его (задом наперёд). Буферные переменные использовать низя..
a=a+b;
b=a-b;
a=a-b;
ну или в контексте данной задачи

Код: Выделить всё

for(int i=0; i<arr.lenth/2;i++)
{
    arr[i] = arr[i] + arr[arr.length-i];
    arr[arr.length-i] = arr[i]-arr[arr.length-i];
    arr[i]=arr[i]-arr[arr.length-i];
}

Re: Требуется програмист со знанием алгоритмов

Добавлено: 12 ноя 2014, 13:18
SaaBaka
Ega23
Для обмена значений без буферной переменной обычно используется XOR swap: a=a^b; b=a^b; a=a^b.

Re: Требуется програмист со знанием алгоритмов

Добавлено: 12 ноя 2014, 13:19
WingRabbit
А, ну и должно быть arr.length-i-1, а то аут оф рейндж будет.

Re: Требуется програмист со знанием алгоритмов

Добавлено: 12 ноя 2014, 13:36
Ega23
WingRabbit писал(а):a=a+b;
И тот самый Rage Check Еггог. :D

Re: Требуется програмист со знанием алгоритмов

Добавлено: 12 ноя 2014, 13:37
Ega23
SaaBaka писал(а):Ega23
Для обмена значений без буферной переменной обычно используется XOR swap: a=a^b; b=a^b; a=a^b.
Я в курсе.

Re: Требуется програмист со знанием алгоритмов

Добавлено: 12 ноя 2014, 13:44
WingRabbit
Ega23 писал(а):
WingRabbit писал(а):a=a+b;
И тот самый Rage Check Еггог. :D
Ну да, осознал)