//modified version of insertion sort for varying increments template void inssort2(E A[], int n, int incr) { for (int i=incr;i=incr) && (Comp::prior(A[j],A[j-incr]));j-=incr) swap(A,j,j-incr); } template void shellsort(E A[], int n) { for (int i=n/2;i>2;i/=2) for (int j=0;j(&A[j],n-j,i); inssort2(A,n,1); }