/*
* bubble.c
* This program reads a sequence of intergers, terminated by (-1), and sorts
* it using the
bubble-sort algorithm.
*/
#include <stdio.h>
#define MAX_SIZE 100
/* Prototypes:
*/
void bubble_sort
(int *arr, int
n);
int main ()
{
const
int stop_code = -1;
int array[MAX_SIZE];
int n_numbers = 0;
int curr;
int i;
/* Read the input
numbers. */
while
(n_numbers < MAX_SIZE)
{
/* Read the next
number. */
printf
("Please enter the next number (or -1 to stop):
");
scanf
("%d", &curr);
if
(curr == stop_code)
break;
/* Store it. */
array[n_numbers] = curr;
n_numbers++;
}
/* Sort the numbers
and print them. */
bubble_sort (array,
n_numbers);
for
(i = 0; i < n_numbers; i++)
printf
("%d ", array[i]);
printf
("\n");
return
(0);
}
/*
------------------------------------------------------------------------
* Function: bubble_sort
* Purpose : Sort an
array of integers in an ascending order, using the
*
bubble-sort algorithm.
* Input
: n - The number of intergers in the array.
* In/Out : arr - The
array.
* Returns : Nothing.
*/
void bubble_sort
(int *arr, int
n)
{
int
i, j;
int
temp;
/* Let i run over all entries (except the last). */
for
(i = 0; i < n - 1; i++)
{
/* Let j run over
all entries from (i+1) until the last. */
for
(j = i + 1; j
< n; j++)
{
/* If arr[i] > arr[j],
swap the two entries. */
if (arr[i]
> arr[j])
{
temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
}
}
return;
}