164k views
0 votes
The algorithm S(A, n, i) selects all the j-th smallest elements (with j ≤ i) from an array A of n elements, by using linearselect to select each of the j-th smallest elements (with j ≤ i). Clearly, one could also implement S alternatively as T(A, n, i), which first sort A (on average-case and on worstcase, the sorting takes time O(n log n) using mergesort) and then select the first i elements. Please compare the average-case complexities of the two algorithms; i.e., For the average-case complexities, under what conditions (on the choices for i), S is better than T or vice versa

1 Answer

3 votes

Answer:

Follows are the solution to this question:

Step-by-step explanation:

In the linear selected algorithms scans the given field sequentially but instead calculates the fixed amount by crossing the items throughout the list since they are displayed. Take into consideration the various chosen algorithm:

S(A, n, i) Algorithm:

In array B, copy array A items.

To save results, construct an array C of height.

Start Loop j = 0 to i-1.

Determine array B's lowest value.

In array C, also save the minimum value.

Delete from array B the minimum value.

Back the C array.

Analysis of runtime:

In i iterations, the external loop is used, although i have to compute the number of small lots.

This internal loop should run and calculate the minimum variable, whereby n is the input array length at the most values of n.

Its cumulative runtime is equal to O(in)+C =

O(in). All remaining operations are done at a precise rate.

The combine type technique requires that division concept to

sort the sorted array either in or upwards backward order.

Follow the appropriate method using merge type to

select the shortest items of a certain list.

T (A, n, i) algorithm:

In B array, copy array A elements.

To save the output, build a C array of sizes.

Using merge form in an increasing order to sort all items of the B list.

Start the loop j= 0 to i-1.

Save A[j] value in C[j].

Return array C,

return array C.

Analysis of run time:

The combined function requires O (n log n) to arrange a size n list.

Its number of samples in the process to construct the resulting sequence becomes equal to i since i is the minimum number of elements to also be calculated. All remaining transaction is performed in continuous time.

The time to work is O (n log n) + O i + C = O (n log n). The time needed.

The complexities of the following algorithms are similar:

Scenario 1: S is stronger than to the T-algorithm

Consider the number for smallest elements to also be calculated or even the I value is significantly smaller than the number of array elements. Let i = 2 and n = 16.

Its algorithm S requires O(in) time for both the calculation of a result, who in this case is equivalent to (2 16).

If algorithm T finds the initiative of O (n log n), who in this case is equivalent to (16 logs 16) = (16 4).

The S method, therefore, operates better than that of the T algorithm, if another I value exceeds the log n value.

Scenario 2: Algorithm T is much more successful that algorithm S

Evaluate if the number of components which must be calculated is smaller or if the value of I is comparable with that of the items inside the array.

Let the I = 12 quality and n = 16 value. Its S method applies O(in) time, and in this, the situation is just like (12 16).

Hence, the algorithm T performs better than the algorithm S when the value of i is greater than the value of the log n.

User Abhishek Bedi
by
5.7k points