Question
Problem 4: Consider the following pseudocode for a sorting algorithm. StoogeSort(A[0 ... n - 1]) if n = 2 and A[0] > A[1] swap A[0]
Problem 4: Consider the following pseudocode for a sorting algorithm. StoogeSort(A[0 ... n - 1]) if n = 2 and A[0] > A[1] swap A[0] and A[1] else if n > 2 m = ceiling(2n/3) StoogeSort(A[0 ... m - 1]) StoogeSort(A[n - m ... n - 1]) Stoogesort(A[0 ... m - 1]) a) Verbally describe how the STOOGESORT algorithm sorts its input. b) Would STOOGESORT still sort correctly if we replaced k = ceiling(2n/3) with k = floor(2n/3)? If yes prove if no give a counterexample. (Hint: what happens when n = 4?) c) State a recurrence for the number of comparisons executed by STOOGESORT. d) Solve the recurrence to determine the asymptotic running time. Problem 5: a) Implement STOOGESORT from Problem 4 to sort an array/vector of integers. Implement the algorithm in the C language. Your program should be able to read inputs from a file called data.txt where the first value of each line is the number of integers that need to be sorted, followed by the integers. The output will be written to a file called stooge.out. Submit a copy of all your code files and a README file that explains how to compile and run your code. We will only test execution with an input file named data.txt. b) Now that you have proven that your code runs correctly using the data.txt input file, you can modify the code to collect running time data. Instead of reading arrays from a file to sort, you will now generate arrays of size n containing random integer values and then time how long it takes to sort the arrays. You will need at least seven values of t (time) greater than 0. If there is variability in the times between runs of the algorithm you may want to take the average time of several runs for each value of n.
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