1.4 Consider the operation of swapping two values. Explain what is wrong with this: // Swap A[i] and A[j]; A[i] = A[j]; A[j] = A[i];

Database System Concepts
7th Edition
ISBN:9780078022159
Author:Abraham Silberschatz Professor, Henry F. Korth, S. Sudarshan
Publisher:Abraham Silberschatz Professor, Henry F. Korth, S. Sudarshan
Chapter1: Introduction
Section: Chapter Questions
Problem 1PE
icon
Related questions
Question
1.7 Comment out the loops that print text with std::cout to avoid too much text
printing to the terminal and then set n=10000. Make testsort again. You can now
time the program with different algorithms by using:
time testsort
to run an executable called testsort. In the output, the first number preceeding the
u is roughly the number of cpu-seconds used. Time the algorithms and see which
one performs best. Try timing more than once to verify your results. Report your
results.
1.8 Repeat the timing exercise but this time with an array of 10,000 numbers that
is already ordered both top-down and bottom-up, A[i]=i or A[i]=n-i+1. Report
the results and explain the outcomes.
Transcribed Image Text:1.7 Comment out the loops that print text with std::cout to avoid too much text printing to the terminal and then set n=10000. Make testsort again. You can now time the program with different algorithms by using: time testsort to run an executable called testsort. In the output, the first number preceeding the u is roughly the number of cpu-seconds used. Time the algorithms and see which one performs best. Try timing more than once to verify your results. Report your results. 1.8 Repeat the timing exercise but this time with an array of 10,000 numbers that is already ordered both top-down and bottom-up, A[i]=i or A[i]=n-i+1. Report the results and explain the outcomes.
1.4 Consider the operation of swapping two values. Explain what is wrong with
this:
// Swap A[i] and A[j];
A[i] = A[j];
A[j] = A[i];
1.5 Implement the Partition function of the Quick Sort algorithm first, as a function
in the files sort.cpp and sort.h. Parition takes an array and an integer as arguments
but it also returns an integer. It is not void like InsertionSort. The partition
chooses a value in the array and then rearranges the array into those elements smaller
and larger than this value.
smaller than the partitioning value and this is the information it returns.
Partition from your testsort.cpp and have it print out the partition count just
to check it works with option 2. There is already a line of code you can uncomment
to do this in testsort.cpp.
As part of that process it counts how many values are
Call
Simple pseudo-code for a recursive version of QuickSort which uses the above Partition
function is listed below. It relies on the partition to produce two sub-arrays where every element
of the first one is guaranteed to all be lesser in value than every element of the second one.
Once the process has progressed until the sub-arrays are 0 or 1 long then the sort is completed.
Quick Sort
O QuickSort(A, n)
if n >1 then
q+Partition(A, n)
QuickSort(A[0...q – 1), q)
QuickSort(A[g +1...n – 1], n – 1– q)
end if
O end QuickSort
1.6 Implement the above Quick Sort algorithm as a function called QuickSort in
files sort.cpp and sort.h. It will use your Partition function. Modify testsort.cpp
to test the quick sort, make it and test that it sorts correctly by running testsort
and choosing option 3.
Now that we have verified that the sorts work, we are ready to test the performance of the
algorithms.
Transcribed Image Text:1.4 Consider the operation of swapping two values. Explain what is wrong with this: // Swap A[i] and A[j]; A[i] = A[j]; A[j] = A[i]; 1.5 Implement the Partition function of the Quick Sort algorithm first, as a function in the files sort.cpp and sort.h. Parition takes an array and an integer as arguments but it also returns an integer. It is not void like InsertionSort. The partition chooses a value in the array and then rearranges the array into those elements smaller and larger than this value. smaller than the partitioning value and this is the information it returns. Partition from your testsort.cpp and have it print out the partition count just to check it works with option 2. There is already a line of code you can uncomment to do this in testsort.cpp. As part of that process it counts how many values are Call Simple pseudo-code for a recursive version of QuickSort which uses the above Partition function is listed below. It relies on the partition to produce two sub-arrays where every element of the first one is guaranteed to all be lesser in value than every element of the second one. Once the process has progressed until the sub-arrays are 0 or 1 long then the sort is completed. Quick Sort O QuickSort(A, n) if n >1 then q+Partition(A, n) QuickSort(A[0...q – 1), q) QuickSort(A[g +1...n – 1], n – 1– q) end if O end QuickSort 1.6 Implement the above Quick Sort algorithm as a function called QuickSort in files sort.cpp and sort.h. It will use your Partition function. Modify testsort.cpp to test the quick sort, make it and test that it sorts correctly by running testsort and choosing option 3. Now that we have verified that the sorts work, we are ready to test the performance of the algorithms.
Expert Solution
steps

Step by step

Solved in 2 steps

Blurred answer
Knowledge Booster
Declaring and Defining the Function
Learn more about
Need a deep-dive on the concept behind this application? Look no further. Learn more about this topic, computer-science and related others by exploring similar questions and additional content below.
Similar questions
Recommended textbooks for you
Database System Concepts
Database System Concepts
Computer Science
ISBN:
9780078022159
Author:
Abraham Silberschatz Professor, Henry F. Korth, S. Sudarshan
Publisher:
McGraw-Hill Education
Starting Out with Python (4th Edition)
Starting Out with Python (4th Edition)
Computer Science
ISBN:
9780134444321
Author:
Tony Gaddis
Publisher:
PEARSON
Digital Fundamentals (11th Edition)
Digital Fundamentals (11th Edition)
Computer Science
ISBN:
9780132737968
Author:
Thomas L. Floyd
Publisher:
PEARSON
C How to Program (8th Edition)
C How to Program (8th Edition)
Computer Science
ISBN:
9780133976892
Author:
Paul J. Deitel, Harvey Deitel
Publisher:
PEARSON
Database Systems: Design, Implementation, & Manag…
Database Systems: Design, Implementation, & Manag…
Computer Science
ISBN:
9781337627900
Author:
Carlos Coronel, Steven Morris
Publisher:
Cengage Learning
Programmable Logic Controllers
Programmable Logic Controllers
Computer Science
ISBN:
9780073373843
Author:
Frank D. Petruzella
Publisher:
McGraw-Hill Education