Answered step by step
Verified Expert Solution
Question
1 Approved Answer
5 BubbleSort (30 pts) BubbleSort is a popular but inefficient sorting algorithm. It works by repeatedly swapping adjacent elements that are out of order, and
5 BubbleSort (30 pts) BubbleSort is a popular but inefficient sorting algorithm. It works by repeatedly swapping adjacent elements that are out of order, and doing so enough times that there can be no more elements out of order. 1: BUBBLESORT(A[1..n)) 2: for i = 1 to n - 1 3: for j = n downto i +1 if A[j] A[n - 1] = A[n]. You will do this using loop invariants. (a) (10 pts) State precisely the loop invariant for the inner for loop (line 3), and prove that this loop invariant holds. Your proof should use the structure of the loop invariant proof presented in Chapter 2 of CLRS. Hint: To come up with a good loop invariant, think about what exactly the algorithm is doing. (b) (10 pts) Using the termination condition of the loop invariant proved in part (a), state the loop invariant for the outer for loop (line 2) that will allow you to prove the inequality A[1] = A[2] = A[3]... > A[n 1] = A[n]. Again, your proof should use the structure of the loop invariant proof presented in Chapter 2 of CLRS. (c) (10 pts) What is the worst-case running time of BUBBLESORT? Show your work (using summations). How does it compare asymptotically to the running time of InsertionSort
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