Я пытаюсь инвертировать отсортированную часть и несортированную часть в логике сортировки вставки, описанной в CLR. Выход полностью ошибочен. Может кто-нибудь указать ошибку или логическую ошибку в моем коде.Вставка сортируется в противоположном направлении. Сортированная часть справа и несортированная слева
#include<stdio.h>
#include<stdlib.h>
int main()
{ int a[] = {67,7,3,2,1,9,45,5};
int k;
int n = sizeof(a)/sizeof(a[0]);
insert(a,n);
for(k = 0;k < n; k++)
printf("%d %d\n",k,a[k]);
return 0;
}
void insert(int *a,int n)
{
int i,j,val;
for(i=n-2;i>=0;i--){
val=a[i];
for(j=i+1;j<n && a[j]<val;j++){
a[j-1]=a[j];
}
a[j--]=val;
}