Sorting algorithms/Bubble sort: Difference between revisions

m
(→‎{{header|Modula-3}}: Whoops, you were right, the line 'sorted := FALSE;' should have been inside the IF.)
Line 254:
 
template< typename ARRAY_TYPE, typename INDEX_TYPE >
void bubble_sort( ARRAY_TYPE array[], INDEX_TYPE size )
void
bubble_sort( ARRAY_TYPE array[], INDEX_TYPE size )
{
bool done = false ;
while ( !done done)
{
{
done = true ;
for( (INDEX_TYPE i = 0 ; i < size-1 ; i++ )
{
if( (array[i] > array[i+1] )
{
done = false ;
std::swap(array[i], array[i+1]);
}
}
}
}
}
 
template< typename TYPE >
void print( TYPE val )
void
print( TYPE val )
{
std::cout << val << " " ;
}
 
int main()
main()
{
int array[] = { 10, 9, 8, 7, 6, 5, 4, 3, 2, 1 } ;
bubble_sort( array, 10 ) ;
std::for_each( (&array[0], &array[10], print<int> ) ;
std::cout << std::endl ;
//But in real life...
int data[] = { 10, 9, 8, 7, 6, 5, 4, 3, 2, 1 } ;
std::sort( data, data+10 ) ;
std::for_each( (data, data+10, print<int> ) ;
std::cout << std::endl ;
}</lang>