Answered step by step
Verified Expert Solution
Link Copied!

Question

1 Approved Answer

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 and .

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

blur-text-image

Get Instant Access to Expert-Tailored Solutions

See step-by-step solutions with expert insights and AI powered tools for academic success

Step: 2

blur-text-image

Step: 3

blur-text-image

Ace Your Homework with AI

Get the answers you need in no time with our AI-driven, step-by-step assistance

Get Started

Recommended Textbook for

Object Oriented Databases Prentice Hall International Series In Computer Science

Authors: John G. Hughes

1st Edition

0136298745, 978-0136298748

More Books

Students also viewed these Databases questions