Question: Question 1 Consider the following algorithm: Algorithm 1: Mystery(A, n) Input : Array A of n numbers ao, ... an-1 with n > 1 Output:

Question 1 Consider the following algorithm: Algorithm 1: Mystery(A, n) Input : Array A of n numbers ao, ... an-1 with n > 1 Output: See question (a) below 1 if n=1 then 2 | Print the message "Mystery solved" 3 else j1; while j a; then | swap aj-1 and a; jj+1; Mystery(A, n-1); 4 5 6 7 8 9 (a) Using A = (9,5,11,3,2) as the input array, hand-trace Mystery, showing the values of n, j, and the array elements just before line 8 is executed. (b) Determine the running time T(n) as a function of the number of comparisons made on line 6, and then indicate its time and space efficiency i.e., O and 12 bounds). (c) Determine the running time T(n) as a function of the number of swaps made on line 7, and indicate its time and space efficiency. (d) Suggest an improvement, or a better algorithm altogether, and indicate its time and space efficiency. If you cannot do it, explain why it cannot be done? (e) Can Mystery be converted into an iterative algorithm? If it cannot be done, explain why; otherwise, do it and determine its running time complexity in terms of the number of comparisons of the array elements