Oct 8, 2014

Shell sort

12:37 AM Posted by Unknown , No comments
//Tool: Dev C++ 

#include <iostream>

void ShellSort( int array[], int gap, int len );

int main( void )
{
int len;
//int array[]= { 8, 3, 7, 9, 1, 24, 2 };
int array[]= { 42, 20, 17, 13, 28, 14, 23, 15 };

len= sizeof( array )/ sizeof( array[ 0 ] );

for( int gap= len/ 2; gap> 0; gap/= 2 )
{
ShellSort( array, gap, len );
}

return 0;
}

void ShellSort( int array[], int gap, int len )
{
int temp;

for( int i= gap; i< len; i++ )
{
for( int j= i- gap; j>= 0; j-= gap )
{
if( array[ j ]> array[ j+ gap ] ) 
{
temp= array[ j ];
array[ j ]= array[ j+ gap ];
array[ j+ gap ]= temp;
}
}

for( int k= 0; k< len; k++ )
{
std::cout<< array[ k ]<< " ";
}
std::cout<< "\n";
}

}

The result:
28 20 17 13 42 14 23 15 
28 14 17 13 42 20 23 15 
28 14 17 13 42 20 23 15 
28 14 17 13 42 20 23 15 
17 14 28 13 42 20 23 15 
17 13 28 14 42 20 23 15 
17 13 28 14 42 20 23 15 
17 13 28 14 42 20 23 15 
17 13 23 14 28 20 42 15 
17 13 23 14 28 15 42 20 
13 17 23 14 28 15 42 20 
13 17 23 14 28 15 42 20 
13 14 17 23 28 15 42 20 
13 14 17 23 28 15 42 20 
13 14 15 17 23 28 42 20 
13 14 15 17 23 28 42 20 
13 14 15 17 20 23 28 42 

0 Comment:

Post a Comment