挿入ソート【c言語】

1007 ワード

#include 

void insertSort( int arr[] , int size ) {
int i , j , k , f /*First element*/;
// 0 1 2 3 4
// 4 3,2,1
// 3 4 2,1
// 2 3 4 1

// 1.
for ( i = 1; i < size; i++ ) {
f = arr[i] ; // ,
// 2. ,
for ( j = 0; j < i; j++ ) {
if ( f < arr[j] ) {
// 3. ,j
for ( k = ( i - 1 ); k > j ; k-- ) {
arr[ k + 1 ] = arr[ k ];
}

arr[ j ] = f;
}
}
}
}

void printAll( int arr[], int size ) {
int i =0;

for ( i = 0; i < size; i++ ) {

printf( "%d ", arr[i] );
}

printf( "
" );
}

void main() {
int arr[] = {3,2,1,2,3, 7,8,9,10 };
int size = sizeof( arr ) / sizeof( int );

printAll( arr, size );
insertSort( arr, size );
printAll( arr, size );
}