#SIZE 10
Direct Insert Sort
void Insert_sort () {
int i,j;
int array[size+1];
ARRAY[]={0,12,23,11,55,2,34,18,20,48,22};
for (i=2;i<=size;i++) {
Array[0]=array[i];
J=i-1;
while (Array[0]<array[j]) {
ARRAY[J+1]=ARRAY[J];
j--;
}
ARRAY[J+1]=ARRAY[0];
}
}
Binary Insert Sort
void Insert_binary_sort () {
int j,i,low,hight,m;
int array[size+1];
for (i=2;i<=size;i++) {
Array[0]=array[i];
Hight=i-1;
Low=1;
while (Low<=hight)
{
M= (Low+hight)/2;
if (Array[0]<array[m])
Hight=m-1;
else low=m+1;
}
for (j=i;j>hight+1;j--)
{
ARRAY[J]=ARRAY[J-1];
}
ARRAY[HIGHT+1]=ARRAY[0];
}
}
Shell sort, optimized on direct insert sort
void Shell_sort () {
int d,n,j,i;
int array[size+1];
int d=n;
do{
D=D/2;
for (i=d+1;i<=size;i++)
{
Array[0]=array[i];
for (J=i-d;j>0&&array[j]>array[0];j-=d) {
ARRAY[J+D]=ARRAY[J];
}
ARRAY[J+D]=ARRAY[0];
}
}while (d!=1);
}
Shell sequencing of data structures