In: Computer Science
// This program uses a bubble sort to arrange an array of integers in
// ascending order (smallest to largest). It then display the array
// before the sorting and after the sorting. Modify the program so it orders
// integers in descending order (largest to smallest). Then add some code
// to display the array at each step of the algorithm. You don't have to
// modify anything in the main() function. All modification are inside
// the bubbleSortArray() function.
// EXAMPLE:
// The values before the bubble sort is performed are: 9 2 0 11 5
// The values are: 9 2 0 11 5
// The values are: 9 2 0 11 5
// The values are: 9 2 11 0 5
// The values are: 9 2 11 5 0
// The values are: 9 2 11 5 0
// The values are: 9 11 2 5 0
// The values are: 9 11 5 2 0
// The values are: 11 9 5 2 0
// The values are: 11 9 5 2 0
// The values are: 11 9 5 2 0
// The values after the bubble sort is performed are: 11 9 5 2 0
#include<iostream>
using namespace std;
// Function prototypes
void bubbleSortArray(int[], int);
const int SIZE = 5;
int main()
{
int values[SIZE] = {9,2,0,11,5};
// Displays the array before sorting
cout << "The values before the bubble sort is performed are: ";
for (int count = 0; count < SIZE; count++)
cout << values[count] << " ";
cout << endl;
// Sort the array in ascending order using bubble sort algorithm
bubbleSortArray(values,SIZE);
// Display the array after sorting
cout << "\n\nThe values after the bubble sort is performed are: ";
for (int count = 0; count < SIZE; count++)
cout << values[count] << " ";
return 0;
}
//******************************************************************
// bubbleSortArray
//
// task: to sort values of an array in ascending order
// data in: the array, the array size
// data out: the sorted array
//
//******************************************************************
void bubbleSortArray(int array[], int elems)
{
bool swap;
int temp;
int bottom = elems - 1; // Bottom indicates the end part of the
// array where the largest values have
// settled in order
do
{
swap = false;
for (int count = 0; count < bottom; count++)
{
if (array[count] > array[count+1])
{ // The next three lines swap the two elements
temp = array[count];
array[count] = array[count+1];
array[count+1] = temp;
swap = true; // Indicates that a swap occurred
}
// Display array at each each step
cout << "\nThe values are: TO BE IMPLEMENTED";
// Add code here to diplay the complete array at each step
// Hint: for-loop similar to the one in the main() function
}
bottom--; // Bottom is decremented by 1 since each pass through
// the array adds one more value that is set in order
// Loop repeats until a pass through the array with no swaps occurs
} while(swap != false);
}
#include<iostream>
using namespace std;
// Function prototypes
void bubbleSortArray(int[], int);
const int SIZE = 5;
int main()
{
int values[SIZE] = {9,2,0,11,5};
// Displays the array before sorting
cout << "The values before the bubble sort is performed are:
";
for (int count = 0; count < SIZE; count++)
cout << values[count] << " ";
cout << endl;
// Sort the array in ascending order using bubble sort
algorithm
bubbleSortArray(values,SIZE);
// Display the array after sorting
cout << "\n\nThe values after the bubble sort is performed
are: ";
for (int count = 0; count < SIZE; count++)
cout << values[count] << " ";
return 0;
}
void bubbleSortArray(int array[], int elems)
{
for(int i=0; i<elems-1; i++){ //iterating all
elements
for(int j=0;
j<(elems-i-1); j++){
if(array[j]>array[j+1]){ //for
every iteration checking previous array value is greater than next
value in array
temp=array[j];
//putting larger value in temp variable
array[j]=array[j+1]; //putting smaller value in
previous element's place
array[j+1]=temp;
//putting larger value in next element's place
}
//displaying the elements at every step of
algorithms tells which elements are swapped
cout<<"\nThe values are: ";
for(int i=0;i<elems;i++){
cout<<array[i]<<"
"; //displaying elements
}
}
}
}
--------------------------------------------------------------------------------------------------------------------------