#include <stdlib.h>
#include <stdio.h>
#include <iostream>
using namespace std;
void ShellInsert(int a[], int n, int dk){
int i=0,j=0;
for(i=dk+1; i<=n; i++){
if(a[i] < a[i-dk])
{
a[0] = a[i] ;
for(j=i-dk; j>0 && a[0] < a[j]; j-=dk)
{
a[j+dk] = a[j];
}
a[j+dk]=a[0];
}
}
}
void ShellSort(int a[], int n, int dlta[], int t ){
for(int k=0; k< t; k++)
{
ShellInsert(a, n, dlta[k]);
}
for(int i=1; i<=n; i++)
{
cout<<a[i]<<endl;
}
}
int main(){
int b[8] ={0, 12, 2, 3, 4, 7, 8, 19 };
int dlta[3] = { 5, 3, 1};
ShellSort(b, 7, dlta, 3);
system("PAUSE");
}