Return to the BobbyGriggs.com C++ Nook


Chapter 8 - Bubble Sort
© 1998 by Bobby Griggs.



// Program name:  Bubble sort

// Purpose:  To sort an array of integers in to ascending order.



// Win32 console application



#pragma hdrstop



#include < iostream.h >

#include < fstream.h >

#include < assert.h >

#include < iomanip.h >

#include < conio.h >



#define FILENAME "integers.dat"

#define MAX 25



void Read_from_file(ifstream &integers_file,int numbers[MAX]);

void Bubble_sort(int numbers[MAX]);

void Display_sorted_array(int numbers[MAX]);



void main()

{

	ifstream integers_file;

	int numbers[MAX];



	Read_from_file(integers_file,numbers);

	Bubble_sort(numbers);

	Display_sorted_array(numbers);

	return;

}



void Read_from_file(ifstream &integers_file,int numbers[MAX])

{

	int count = 0;



	integers_file.open(FILENAME);

	assert(!integers_file.fail());

	while ((!integers_file.eof()) && (count < MAX))

	{

		integers_file >> numbers[count];

		count++;

	}

	return;

}



void Bubble_sort(int numbers[MAX])

{

	int count1,count2,swap;



	for (count1 = 0;count1 < MAX - 1;count1++)

		for (count2 = count1 + 1;count2 < MAX;count2++)

		{

			if (numbers[count1] > numbers[count2])

			{

				swap = numbers[count1];

				numbers[count1] = numbers[count2];

				numbers[count2] = swap;

			}

		}

	return;

}



void Display_sorted_array(int numbers[MAX])

{

	int count;



	cout << setiosflags(ios::right);

	for (count = 0;count < MAX;count++)

	{

		cout << setw(2) << numbers[count] << " ";

		if ((count + 1) % 5 == 0)

			cout << endl << endl;

	}

	cout << endl << endl;

	cout << "Press any key to continue ... " << endl;

	getche();

	return;

}