 |
/* Fig. 7.15: fig07_15.c |
 |
This program puts values into an array, sorts the values into |
 |
ascending order, and prints the resulting array. */ |
 |
#include <stdio.h> |
 |
#define SIZE 10 |
 |
|
 |
void bubbleSort( int * const array, const int size ); |
 |
|
 |
int main( void ) |
 |
{ |
 |
int a[ SIZE ] = { 2, 6, 4, 8, 10, 12, 89, 68, 45, 37 }; |
 |
int i; |
 |
printf( "Data items in original order\n" ); |
 |
for ( i = 0; i < SIZE; i++ ) { |
 |
printf( "%4d", a[ i ] ); |
 |
} |
 |
|
 |
bubbleSort( a, SIZE ); |
 |
printf( "\nData items in ascending order\n" ); |
 |
|
 |
for ( i = 0; i < SIZE; i++ ) { |
 |
printf( "%4d", a[ i ] ); |
 |
} |
 |
printf( "\n" ); |
 |
return 0; |
 |
} |
 |
|
 |
void bubbleSort( int * const array, const int size ) |
 |
{ |
 |
void swap( int *element1Ptr, int *element2Ptr ); |
 |
int pass; |
 |
int j; |
 |
for ( pass = 0; pass < size - 1; pass++ ) { |
 |
for ( j = 0; j < size - 1; j++ ) { |
 |
if ( array[ j ] > array[ j + 1 ] ) { |
 |
swap( &array[ j ], &array[ j + 1 ] ); |
 |
} |
 |
} |
 |
} |
 |
} |
 |
|
 |
void swap( int *element1Ptr, int *element2Ptr ) |
 |
{ |
 |
int hold = *element1Ptr; |
 |
*element1Ptr = *element2Ptr; |
 |
*element2Ptr = hold; |
 |
} |