Я думаю, что у вас возникла следующая проблема:
d
следует заменить на j
Прототип функции долженbe void insertionSort(int A[], int dim)
Логика вставки неверна.
, так что моя модификация основана на вашем исходном коде:
void insertionSort(int A[], int dim)
{
int temp, j;
for (int i = 1; i < dim; i++) {
temp = A[i];
j = i;
while (j > 0 && A[j - 1] > temp) {
A[j] = A[j - 1];
j--;
}
A[j] = temp;
}
}