Find three smallest elements in a given array

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

Example:

Int [] a = { 6, 8, 1, 9, 2, 10};
Output: 1, 2, 6
Int [] a = { 6, 8, 1, 9, 2, 1, 10, 10};
Output: 1, 1, 2
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. Check if first>current, assign the first value to second and second value to third and assign current to first.
    2. If the above step is not true then the current element might be a candidate of the second smallest element, so check if current<second, if yes then assign second value to third and assign current to second.
    3. If the above step is not true then current element might be a candidate of third smallest element, so check if current<third, if yes then assign current to third.

See the code below for more understanding.

Code:

Output:

least three elements are: 1 2 6

__________________________________________________
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.
__________________________________________________

You may also like...

%d bloggers like this: