Question
PROGRAM SHOULD BE IN C++ and use this searching and sourcecode to do this program // Lesson #11: Searching and Sorting // // Purpose: Code
PROGRAM SHOULD BE IN C++ and use this searching and sourcecode to do this program
// Lesson #11: Searching and Sorting
//
// Purpose: Code for searching and sorting arrays
//
//
//#include "stdafx.h
#include
#include
#include
using namespace std;
// Function prototypes
void printArray (int array [], int size);
void initArray (int array[], int size);
int linearSearch (int array[], int size, int value);
int binarySearch (int array[], int size, int value);
void swap (int &a, int &b);
void bubbleSort (int array [], int size);
void selectionSort (int array[], int size);
int main()
{
const int ARRAY_SIZE = 20;
int numbers [ARRAY_SIZE];
// Generate array of numbers from 1 to ARRAY_SIZE
initArray(numbers, ARRAY_SIZE);
// Print out Array
printArray (numbers, ARRAY_SIZE);
// Insert code for searching and sorting
// the "numbers" array.
return 0;
}
/******************************
* Print out array elements
******************************/
void printArray (int array[], int size)
{
for (int i=0; i cout << "array [" << i << "] = " << array [i] << endl; cout << endl; } /****************************** * Initialize array with random numbers ******************************/ void initArray (int array[], int size) { unsigned seed = time (0); srand(seed); for (int i=0; i< size; i++) array [i] = 1 + rand() % size; } /****************************** * Linear Search ******************************/ int linearSearch (int array[], int size, int value) { int index = 0; int position = -1; bool found = false; while (index < size && !found) { if (array[index] == value) { found = true; position = index; } index++; } return position; } /****************************** * Binary Search ******************************/ int binarySearch (int arr[], int size, int value) { int first = 0; int last = size -1, middle; int position = -1; bool found = false; while (!found && first <= last) { middle = (first + last)/2; if (arr[middle] == value) { found = true; position = middle; } else if (arr[middle] > value) last = middle - 1; else first = middle + 1; } return position; } /****************************** * Swap two values ******************************/ void swap (int &a, int &b) { int temp = a; a = b; b = temp; } /****************************** * Bubble Sort Algorithm ******************************/ void bubbleSort (int array [], int size) { int maxElement; int index; for (maxElement = size - 1; maxElement > 0; maxElement--) for (index = 0; index < maxElement; index++) if (array [index] > array [index + 1]) swap (array [index], array [index + 1]); } /****************************** * Selection sort algorithm ******************************/ void selectionSort (int array[], int size) { int minIndex, minValue; for (int start = 0; start < (size - 1); start++) { minIndex = start; minValue = array[start]; for (int index = start+1; index < size; index++) { if (array[index] < minValue) { minValue = array[index]; minIndex = index; } } swap (array[minIndex], array [start]); } } Sorting Benchmarks: The purpose of this program is to sort two identical arrays of numbers in ascending order using the bubble sort and selection sort algorithms. Using the Searching and Sorting Source Code that I provided last week (posted on Moodle), modify the MAIN source code to first generate a random array of integers from 1 to 100 with 100 elements. To help you, the source code that I provide has a function called initArray that will do that for you. Create a copy of the array that gets generated so that you have two identical arrays to be sorted by both sorting functions. Next, call the bubbleSort function with one of the arrays and report back how many exchanges were done to complete the sort (you will need to modify the bubbleSort function to keep track of the number of exchanges). Second, it should call the selectionSort function with the second (identical) array and report back how many exchanges were done to complete the sort. The results should be displayed on the screen for the user. Make sure you include Include several test runs of the program to show successful runs of your program, with both valid and invalid data (to show that you are checking for invalid data) Please ensure the program is well designed and follows accepted style guidelines (e.g. variable naming, indentation, spacing). Please ensure the program is well documented, including the overall purpose of the program and documenting all the major sections of the code. NEW: Please ensure your output includes a line that identifies you.
Step by Step Solution
There are 3 Steps involved in it
Step: 1
Get Instant Access to Expert-Tailored Solutions
See step-by-step solutions with expert insights and AI powered tools for academic success
Step: 2
Step: 3
Ace Your Homework with AI
Get the answers you need in no time with our AI-driven, step-by-step assistance
Get Started