Computer Science, asked by meshramavi239, 10 months ago

Given an array of unique numbers, return a new array of rankings of the original array. For example, if your input array is [10, 5, 20], the output should be [2, 3, 1], since 10 is the second largest number, 5 is the third largest, and 20 is the largest

Answers

Answered by Anonymous
2

Rank of all elements in an array

Given an array of N integers with duplicates allowed. All elements are ranked from 1 to N in ascending order if they are distinct. If there are say x repeated elements of a particular value then each element should be assigned a rank equal to the arithmetic mean of x consecutive ranks.

Examples:

Input : 20 30 10

Output : 2.0 3.0 1.0

Input : 10 12 15 12 10 25 12

Output : 1.5, 4.0, 6.0, 4.0, 1.5, 7.0, 4.0

10 is the smallest and there are two 10s so

take the average of two consecutive ranks

1 and 2 i.e. 1.5 . Next smallest element is 12.

Since, two elements are already ranked, the

next rank that can be given is 3. However, there

are three 12's so the rank of 2 is (3+4+5) / 3 = 4.

Next smallest element is 15. There is only one 15

so 15 gets a rank of 6 since 5 elements are ranked.

Next element is 25 and it gets a rank of 7.

Input : 1, 2, 5, 2, 1, 60, 3

Output : 1.5, 3.5, 6.0, 3.5, 1.5, 7.0, 5.0

Explanation for first input :

Method I (Simple).

Consider that there are no repeated elements. In such a case the rank of each element is simply 1 + the count of smaller elements in the array. Now if the array were to contain repeated elements then modify the ranks by considering the no of equal elements too. If there are exactly r elements which are less than e and s elements which are equal to e, then e gets the rank given by

PLEASE MAKE ME AS A BRAINLIST ANSWER

Similar questions