Тест во внутреннем l oop неверен: когда j == 0
вы читаете и, возможно, изменяете элемент со смещением -1
, которое имеет неопределенное поведение , возможно, вызывая неправильный вывод, но поскольку вы не опубликовали выходной код, там могут быть другие проблемы.
Вот модифицированная версия:
void insertion(int Array[], int n) {
for (int i = 1; i < n; i++) {
for (int j = i; j > 0 && Array[j] < Array[j - 1]; j--) {
int temp = Array[j];
Array[j] = Array[j - 1];
Array[j - 1] = temp;
}
}
}