Answered step by step
Verified Expert Solution
Question
1 Approved Answer
So far we assumed that parameter passing during procedure calls takes constant time, even if an N-element array or sequence is being passed. This assumption
So far we assumed that parameter passing during procedure calls takes constant time, even if an N-element array or sequence is being passed. This assumption is usually valid as most systems pass a pointer to the array not the array itself, which is called call by reference. However, some settings, problems, or systems, may require call by value semantics. Let's consider the 3 following ways to pass array to a function in the code considered thus far: (a) Call by reference: a pointer is passed. Time =(1). (b) Call by value: copying the entire array. Time =(N), where N is the number of elements in the array. (c) Call by a partial value: arrays are passed by copying only the subrange that might be accessed by the called procedure. Time =(n) if the subarray contains n elements. Consider the following 2 algorithms we have already worked with in Homework 1 and in the lectures: (a) Binary search def binary_search(sequence, start, end, key): if end = (end + start) //2 if sequence [middle] = key: return True elif sequence [middle] > key: return binary_search(sequence, start, middle - 1, key) else: return binary_search(sequence, middle +1, end, key) (b) Merge sort Give 6 recurrences for the worst-case running times of each of the two algorithms above when arrays are passed using each of the three parameter-passing strategies above. Solve your recurrences giving tight asymptotic bounds
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