Почему неверно сортирует массив?
Требуется отсортировать массив по возрастанию: если текущий элемент > минимального из оставшегося куска массива, поменять их местами и вывести индексы + 1 этих элементов. Все написал по логике, из-за чего на отладке такая беда?
#include <iostream>
using namespace std;
int main() {
int n, i = 0, j, min, index;
cin >> n;
int* a = new int[n];
for (; i < n;)
cin >> a[i++];
for (i = 0; i < n - 1; i++) {
min = a[i + 1];
index = i + 1;
for (j = i + 1; j < n; j++)
if (a[j] < min)
min = a[j],
index = j;
if (a[i] > min)
swap(min, a[i]),
cout << "Swap elements at indices " << i + 1 << " and " << index + 1 << '.' << endl;
}
cout << "No more swaps needed." << endl;
}