Комментарии 4
В приведенных фрагментах кода сильно режет глаз несогласованное использование типов для индексов. Особенно использование для этих целей знаковых типов.
Для пузырьковой сортировки
сравнивает соседние элементы и меняет их местами, если правый элемент больше левого
приведет к сортировке массива по убыванию.
Приведенный код для BubbleSort не соответствует описанию алгоритма. В коде не сравниваются соседние элементы.
Критерий окончания работы алгоритма "пока массив не будет отсортирован" теоретически правильный но с практической точки зрения бесполезный. У std::vector нет признака отсортирован массив или нет. Практическим критерием окончания работы алгоритма должно стать то, что за весь проход не было ни одной перестановки элементов.
На мой взгляд Selection Sort проще, чем Bubble Sort.
Merge Sort на массиве , лучший случай O(N) если чуток подправить
Много алгоритмов сортировки на языке C++: от простого к сложному с примерами и пояснениями