Пузырьковая сортировка без вспомогательной переменной

Не помню на каком ресурсе, я прочитал о задаче усовершенствования метода пузырьковой сортировки — его надо было реализовать без дополнительной переменной. Она использовалась для взаимного переноса двух элементов массива. Я прочитал об этом и забыл), но однажды она вдруг вспомнилась и прочно засела в голове. И я таки додумался как ее сделать. Не претендю на первенство и в инете не искал ответ)
Итак, у нас уже есть заполненный массив случайных чисел. В массиве 10 элементов.

Біло так

1
2
3
4
5
6
7
8
9
10
//алгоритм
Для н = 0 По 9 Цикл
	Для й = 0 По 8 Цикл
		Если МассивСортировки[й] > МассивСортировки[й + 1] Тогда
			ВременнаяПеременная = МассивСортировки[й];
			МассивСортировки[й] = МассивСортировки[й + 1];
			МассивСортировки[й + 1] = ВременнаяПеременная;
		КонецЕсли;			
	КонецЦикла;
КонецЦикла;

Стало так

1
2
3
4
5
6
7
8
9
10
//алгоритм
Для н = 0 По 9 Цикл
	Для й = 0 По 8 Цикл
		Если МассивСортировки[й] > МассивСортировки[й + 1] Тогда
			МассивСортировки[й] = МассивСортировки[й] + МассивСортировки[й + 1];
			МассивСортировки[й + 1] = МассивСортировки[й] - МассивСортировки[й + 1];
			МассивСортировки[й] = МассивСортировки[й] - МассивСортировки[й + 1];
		КонецЕсли;			
	КонецЦикла;
КонецЦикла;

Скачать сортировку пузирьком -- 6.92 kB, Скачан 93 раз - Скачать