#include <algorithm>
#include <iostream>
#include <list>

void biswap(std::list<int> &l)
{
	if (l.size() < 2)
		return;
	auto it2 = l.begin();
	auto it1 = it2++;
	auto e = l.end();
	for (;;)
	{
		if (*it1 < *it2)
			std::swap(*it1, *it2);
		it1 = it2++;
		if (it2 == e)
			return;
		it1 = it2++;
		if (it2 == e)
			return;
	}
}


int main() {
	std::list<int> myList {3, 2, 1, 2, 1, 3, 2};
	biswap(myList);
	for (int i: myList)
		std::cout << i << ", ";
	return 0;
}