Это может быть тривиально, но я не понимаю, почему реализация по умолчанию Selection Sort нестабильна?
На каждой итерации вы обнаруживаете минимальный элемент в оставшийся массив. При нахождении этого минимума вы можете выбрать первый найденный минимум и обновлять его только тогда, когда элемент на самом деле меньше его. Итак, выбранный элемент на каждой итерации является первым минимумом, то есть он первый в предыдущем порядке сортировки. Итак, насколько я понимаю, текущая сортировка не разрушит порядок, сгенерированный предыдущей сортировкой по равным элементам.
Что мне не хватает?