Бульбашкове сортування без допоміжної змінної

Не пам’ятаю на якому ресурсі, я прочитав про задачу удосконалення методу бульбашкового сортування – його треба було реалізувати без додаткової змінної. Вона використовувалась для взаємного переносу двох елементів массиву. Я прочитав про це і забув), але одного разу вона раптом згадалась і міцно засіла в голові. І я таки додумався як її зробити. Не претендю на першість і в інеті не шукав відповідь)

Отже, в нас вже є заповнений масив випадкових чисел. В масиві 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 разів - Скачати