Here is my code of two arrays. they are sorted by buuble and selection sorting methods.
I have put a pass counter to display each modification but i am unable to display the array after each pass/modification in both sorting methods.
please suggest:
#include <iostream>
#include <iomanip>
using namespace std;
// Function prototypes
void showArray1(int [], int);
void bubbleSortArray1(int [], int);
void showArray2(int [], int);
void selectionSortArray2(int [], int);
int main()
{
const int SIZE = 8; //size of the arrays
//two identical arrays of 8 integers
int array1[SIZE] = {7, 2, 3, 8, 9, 1, 5, 4};
int array2[SIZE] = {1, 5, 7, 8, 9, 3, 2, 0}; //??
//display First array
cout << "The unsorted values in array1 are:\n";
showArray1(array1, SIZE);
//*call the function to sort array 1[ Binary sort]
bubbleSortArray1(array1, SIZE);
cout << "The Bubble sorted values of array1 are:\n";
showArray1(array1, SIZE);
//display second array
cout << "The unsorted values in array2 are:\n";
showArray2(array2, SIZE);
//call the function to selection sort array2 in ascending order
selectionSortArray2(array2, SIZE);
cout << "The Selection sorted values of array2 are:\n";
showArray2(array2, SIZE);
cout << "End of Program.\n";
system("PAUSE");
return 0;
}
/**********Function to display array1***************/
void showArray1(int array1[], int elems)
{
for (int count = 0; count < elems; count++)
cout << array1[count] << " ";
cout << endl;
}
/**********Function to display array2***************/
void showArray2(int array2[], int elems)
{
for (int count = 0; count < elems; count++)
cout << array2[count] << " ";
cout << endl;
}
//**********Function to BUBBLE sort array1***************/
//***********Modified to print elements position after each pass*****/
/***********************************************************
This function performs an ascending-order bubble sort on
array1. The parameter elems holds the number of elements
in the array.
***********************************************************/
void bubbleSortArray1(int array[], int elems)
{
int temp;
bool swap;
// counts number of modifications made to elements
int pass = 0;
do
{ swap = false;
for (int count = 0; count < (elems - 1); count++)
{
if (array[count] > array[count + 1])
{
temp = array[count];
array[count] = array[count + 1];
array[count + 1] = temp;
swap = true;
}
//cout<<"number of pass:"<<pass++<<endl;
}
cout<<"number of pass:"<<pass++<<endl;
// showArray1(array1,SIZE);
} while (swap);
//cout<<"number of pass:"<<pass++<<endl;
}
//**********Function to selection sort array2***************/
//***********Modified to print elements position after each pass*****/
void selectionSortArray2(int array[], int elems)
{
int startScan, minIndex, minValue;
int pass=0;
for (startScan = 0; startScan < (elems - 1); startScan++)
{
minIndex = startScan;
minValue = array[startScan];
for (int index = startScan + 1; index < elems; index++)
{
if (array[index] < minValue)
{
minValue = array[index];
minIndex = index;
}
//cout<<"number of pass:"<<pass++<<endl;
}
array[minIndex] = array[startScan];
array[startScan] = minValue;
cout<<"number of pass:"<<pass++<<endl;
}
}
Function for disaplying array is:
void showArray1(int array1[], int elems)
{
for (int count = 0; count < elems; count++)
cout << array1[count] << " ";
cout << endl;
}