# Evaluation of quicksort and heapsort

Evaluation of QuickSort and HeapSort

You are required to implement correctlyand efficientlythe Heapsortand Quicksortadvanced sorting methods. You may find any necessary information and pseudo-code in the book:

Heapsort: chapter 6 (Heapsort)

Quicksort: chapter 7 (Quicksort)

Before starting to work on the algorithms evaluation code, make sure you have a correct implementation of the algorithm. You need to show your algorithms sort properly on a small-sized input.

1. You are required to compare the two sorting procedures in the averagecase. For the averagecase you have to repeat the measurements m times (m=5) and report their average. Moreover, to be a fair comparison, make sure you always use the sameinput sequence for the two methods.

2. This is how the analysis should be performed:

– vary the dimension of the input array (n) between [100…1000], with an increment of maximum 100;

– for each dimension, generate the appropriate input sequence for the method; run the method, counting the operations (assignments, comparisons, and their sum). Only the assignments and comparisons performed on the input structure and its corresponding auxiliary variables matter (no assignments/comparisons on indexes have to be counted; justify why).

3. Generate charts (1/operation measured) which compares the two methods under the total number of operations, in the averagecase. If one of the curves cannot be visualized correctly because the other has a larger growth rate, place that curve on a separate chart as well. Name your chart and the curves on it appropriately.

4. Interpret the charts and write your observations, interpretation, conclusions, in a separate (document) file.

5. Evaluate Quicksort in the bestand worstcases also – total number of operations. Compare the performance of Quicksort in the three analysis cases. In the document file, justify the choice of the cases and interpret the results.

# Evaluation of quicksort and heapsort

Evaluation of QuickSort and HeapSort

You are required to implement correctlyand efficientlythe Heapsortand Quicksortadvanced sorting methods. You may find any necessary information and pseudo-code in the book:

Heapsort: chapter 6 (Heapsort)

Quicksort: chapter 7 (Quicksort)

Before starting to work on the algorithms evaluation code, make sure you have a correct implementation of the algorithm. You need to show your algorithms sort properly on a small-sized input.

1. You are required to compare the two sorting procedures in the averagecase. For the averagecase you have to repeat the measurements m times (m=5) and report their average. Moreover, to be a fair comparison, make sure you always use the sameinput sequence for the two methods.

2. This is how the analysis should be performed:

– vary the dimension of the input array (n) between [100…1000], with an increment of maximum 100;

– for each dimension, generate the appropriate input sequence for the method; run the method, counting the operations (assignments, comparisons, and their sum). Only the assignments and comparisons performed on the input structure and its corresponding auxiliary variables matter (no assignments/comparisons on indexes have to be counted; justify why).

3. Generate charts (1/operation measured) which compares the two methods under the total number of operations, in the averagecase. If one of the curves cannot be visualized correctly because the other has a larger growth rate, place that curve on a separate chart as well. Name your chart and the curves on it appropriately.

4. Interpret the charts and write your observations, interpretation, conclusions, in a separate (document) file.

5. Evaluate Quicksort in the bestand worstcases also – total number of operations. Compare the performance of Quicksort in the three analysis cases. In the document file, justify the choice of the cases and interpret the results.