Question
Below is an algorithm that sorts an input array of numbers into ascending order. Consider the following statements, not all of which are true. (i)
Below is an algorithm that sorts an input array of numbers into ascending order.
Consider the following statements, not all of which are true.
(i) After the th iteration of the outer for-loop, the first elements of numbers are sorted in ascending order.
(ii) After the th iteration of the outer for-loop, the first + 1 elements of numbers are sorted in ascending order.
(iii) After the th iteration of the outer for-loop, the first elements of numbers are the smallest elements of numbers.
(iv) After the th iteration of the outer for-loop, the first + 1 elements of numbers are the smallest + 1 elements of numbers.
(v) After the th iteration of the outer for-loop, the first elements of numbers are as they will appear in the final output.
(vi) After the th iteration of the outer for-loop, the first + 1 elements of numbers are as they will appear in the final output.
a) Which of the above statements is a loop invariant for some_sort? No explanation needed.
b) Which of the loop invariants given in part (a) can be used to prove that some_sort correctly sorts its input? Explain.
def some sort (numbers): for j in range(1, len(numbers)): i=j while (i>O and numbers [j]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