Shell Sort - C Program

#include<stdio.h> 

/**

This is an in-place Comparison Sort. It generalizes Bubble Sort by allowing the comparison and exchange of elements that lie far apart
**/

void ShellSort(int *array, int number_of_elements) 
{ 
       
int iter, jter, increment, temp; 
       
for(increment = number_of_elements/2;increment > 0; increment /= 2) 
       
{ 
               
for(i = increment; i<number_of_elements; i++) 
               
{ 
                        temp
= array[i]; 
                       
for(j = i; j >= increment ;j-=increment) 
                       
{ 
                               
if(temp < array[j-increment]) 
                               
{ 
                                        array
[j] = array[j-increment]; 
                               
} 
                               
else 
                               
{ 
                                       
break; 
                               
} 
                       
} 
                        array
[j] = temp; 
               
} 
       
} 
}

int main() 
{ 
       
int number_of_elements; 
        scanf
("%d",&number_of_elements); 
       
int array[number_of_elements];  
       
int iter; 
       
for(iter = 0;iter < number_of_elements;iter++) 
       
{ 
                scanf
("%d",&array[iter]); 
       
} 
       
/* Calling this functions sorts the array */ 
       
ShellSort(array,number_of_elements);  
       
for(iter = 0;iter < number_of_elements;iter++) 
       
{ 
                printf
("%d ",array[iter]); 
       
} 
        printf
("\n"); 
       
return 0; 
}
Comments