Find first three largest elements in a given array

Objective: Given an array of integers, write an algorithm to find the first three largest elements in the array.

Example:

Int [] a = { 6, 8, 1, 9, 2, 1, 10};
Output: 10, 9, 8

Int [] a = { 6, 8, 1, 9, 2, 1, 10, 10};
Output: 10, 10, 9

Int [] a = {6};
Output: Invalid Input, array size is less than 3

Approach:

  1. Take three variables; let’s call them first, second and third and mark them as -∞.
  2. Iterate through the array and for each element (let’s call it current),  
    1. Compare it with the first and if first is less, assign the first value to second and second value to third and assign current to first.
    2. If above step is not true then current element might be a candidate of second highest element, so check if current>second, if yes then assign second value to third and assign current to second.
    3. If above step is not true then current element might be a candidate of third highest element, so check if current>third, if yes then assign current to third.

See the code below for more understanding.

Code:

Output:

top three elements are: 10 9 8

__________________________________________________
Top Companies Interview Questions..-

Google Microsoft Amazon Facebook more..

If you find anything incorrect or you feel that there is any better approach to solve the above problem, please write comment.
__________________________________________________

%d bloggers like this: