Sorting Algorithms

aj-120
sorting_algorithms_porject4.docx

CS 2413 Data Structures

Program Assignment #4

Sorting Algorithms

Focus on Sorting Algorithms and Object-oriented programming

Task :

Write a class, namely sorting, that contains at least seven functions: (1) constructor that initializes all the data members if any; (2)start function that reads the data size and maximum number in the list from the keyboard, then generates data set, then call a proper function to sort; (3) selection sort function that carries out a selection sort and counts how many comparisons and moves; (4) insertion sort that conducts an insertion sort and counts how many comparisons and moves; (5) quick sort function that does a quick sort and counts how many comparisons and moves; (6) merge sort function that performs a merge sort and counts how many comparisons and moves; and (7) print function that prints the first 15 elements of the sorted list and the sorting results.

REQUIREMENTS:

1. You must have a program design file you may suffer 10 % percent penalty if you failed to do so.

2. You must have a readme file that instructs readers how to compile and run your program you may suffer 10 % percent penalty if you failed to do so.

3. You must comment your program properly (including proper comments and program synopsis.) you may suffer 10 % percent penalty if you failed to do so.

4. You must put your functions and variables together to form a class—Sorter.

5. You must turn on a copy of the output of your program

6. A late project will NOT be accepted and No exceptions.

Design :

You use the general random number generator to produce a set of random numbers, and then make enough copies for your sorting algorithms. Then sends a copy of the list to each of sorting algorithms. Finally, each algorithm produces a sorting report.

Input:

Your program needs two integers from keyboard: the size of list and maximum number in your list.

Output:

The first 20 elements in the sorted list, # of comparisons from each sorting algorithm.

Your one run’s output may look like:

Enter list size: 100

Enter max number in the list: 100

Unsorted list:

89 2 3 21 5 10 34 1 81 88 40 36 37 1 5 28 21 30….

Sorted List:

Select Sort: 1 1 2 2 2 3 3 3 3 4 4 4 4 5 5 …

Insertion Sort: 1 1 2 2 2 3 3 3 3 4 4 4 4 5 5 …

Quick Sort: 1 1 2 2 2 3 3 3 3 4 4 4 4 5 5 …

Merge Sort: 1 1 2 2 2 3 3 3 3 4 4 4 4 5 5 …

… …

Sorting Results:

Algorithm Comparisons

Select 4950

Insertion 2048

Quick …

Merge …

… …

Your main function may look like:

int main ()

{

sorter mysort;

mysort.start();

return 0;

}

Due: April 27, Tuesday, 2021 11:59 pm . Turn in a soft copy of all the required documents to the blackboard.