ProghubPH
Начинающий программист реализовал сортировку выбором и пузырьковую сортировку. Обе они использовали одну функцию обмена элементов массива с помощью промежуточной переменной:
 один вариант
void swap(int i, int j) { 
  int t = arr[i]; 
  arr[i] = arr[j]; 
  arr[j] = t; 
} //swap 

Обе сортировки работают правильно (хотя пузырьковая раза в два медленнее).



Потом он узнал что обмен можно произвести без промежуточной переменной, с помощью операции побитового "исключающего или" и исправил функцию:
void swap(int i, int j) { 
  arr[i] ^= arr[j]; 
  arr[j] ^= arr[i]; 
  arr[i] ^= arr[j]; 
} //swap 

Однако теперь он обнаружил что:
Обе сортировки перестали работать правильно
Сортировка выбором стала медленнее чем пузырьковая
Сортировка выбором перестала работать правильно
Пузырьковая сортировка перестала работать правильно