Related Articles

# Find the first, second and third minimum elements in an array

• Difficulty Level : Basic
• Last Updated : 27 Aug, 2021

Find the first, second and third minimum elements in an array in O(n).
Examples:

```Input : 9 4 12 6
Output : First min = 4
Second min = 6
Third min = 9

Input : 4 9 1 32 12
Output : First min = 1
Second min = 4
Third min = 9```

First approach : First we can use normal method that is sort the array and then print first, second and third element of the array. Time complexity of this solution is O(n Log n).
Second approach : Time complexity of this solution is O(n).
Algorithm-

```First take an element
then if array[index] < Firstelement
Thirdelement = Secondelement
Secondelement = Firstelement
Firstelement = array[index]
else if array[index] < Secondelement
Thirdelement = Secondelement
Secondelement = array[index]
else if array[index] < Thirdelement
Thirdelement = array[index]

then print all the element ```

## C++

 `// CPP program to find the first, second``// and third minimum element in an array``#include``#define MAX 100000``using` `namespace` `std;` `int` `Print3Smallest(``int` `array[], ``int` `n)``{``    ``int` `firstmin = MAX, secmin = MAX, thirdmin = MAX;``    ``for` `(``int` `i = 0; i < n; i++)``    ``{``        ``/* Check if current element is less than``           ``firstmin, then update first, second and``           ``third */``        ``if` `(array[i] < firstmin)``        ``{``            ``thirdmin = secmin;``            ``secmin = firstmin;``            ``firstmin = array[i];``        ``}` `        ``/* Check if current element is less than``        ``secmin then update second and third */``        ``else` `if` `(array[i] < secmin)``        ``{``            ``thirdmin = secmin;``            ``secmin = array[i];``        ``}` `        ``/* Check if current element is less than``        ``then update third */``        ``else` `if` `(array[i] < thirdmin)``            ``thirdmin = array[i];``    ``}` `    ``cout << ``"First min = "` `<< firstmin << ``"\n"``;``    ``cout << ``"Second min = "` `<< secmin << ``"\n"``;``    ``cout << ``"Third min = "` `<< thirdmin << ``"\n"``;``}` `// Driver code``int` `main()``{``    ``int` `array[] = {4, 9, 1, 32, 12};``    ``int` `n = ``sizeof``(array) / ``sizeof``(array);``    ``Print3Smallest(array, n);``    ``return` `0;``}`

## Java

 `// Java program to find the first, second``// and third minimum element in an array``import` `java.util.*;` `public` `class` `GFG``{``    ``static` `void` `Print3Smallest(``int` `array[], ``int` `n)``    ``{``            ``int` `firstmin = Integer.MAX_VALUE;``            ``int` `secmin = Integer.MAX_VALUE;``            ``int` `thirdmin = Integer.MAX_VALUE;``            ``for` `(``int` `i = ``0``; i < n; i++)``            ``{``                ``/* Check if current element is less than``                ``firstmin, then update first, second and``                ``third */``                ``if` `(array[i] < firstmin)``                ``{``                    ``thirdmin = secmin;``                    ``secmin = firstmin;``                    ``firstmin = array[i];``                ``}``        ` `                ``/* Check if current element is less than``                ``secmin then update second and third */``                ``else` `if` `(array[i] < secmin)``                ``{``                    ``thirdmin = secmin;``                    ``secmin = array[i];``                ``}``        ` `                ``/* Check if current element is less than``                ``then update third */``                ``else` `if` `(array[i] < thirdmin)``                    ``thirdmin = array[i];``            ``}``        ` `            ``System.out.println(``"First min = "` `+ firstmin );``            ``System.out.println(``"Second min = "` `+ secmin );``            ``System.out.println(``"Third min = "` `+ thirdmin );``    ``}``    ` `    ``// Driver code``    ``public` `static` `void` `main(String[] args)``    ``{``            ``int` `array[] = {``4``, ``9``, ``1``, ``32``, ``12``};``            ``int` `n = array.length;``            ``Print3Smallest(array, n);``    ``}``    ` `}` `// This code is contributed by``// Sam007`

## Python3

 `# A Python program to find the first,``# second and third minimum element``# in an array` `MAX` `=` `100000` `def` `Print3Smallest(arr, n):``    ``firstmin ``=` `MAX``    ``secmin ``=` `MAX``    ``thirdmin ``=` `MAX` `    ``for` `i ``in` `range``(``0``, n):``        ` `        ``# Check if current element``        ``# is less than firstmin,``        ``# then update first,second``        ``# and third` `        ``if` `arr[i] < firstmin:``            ``thirdmin ``=` `secmin``            ``secmin ``=` `firstmin``            ``firstmin ``=` `arr[i]` `        ``# Check if current element is``        ``# less than secmin then update``        ``# second and third``        ``elif` `arr[i] < secmin:``            ``thirdmin ``=` `secmin``            ``secmin ``=` `arr[i]` `        ``# Check if current element is``        ``# less than,then update third``        ``elif` `arr[i] < thirdmin:``            ``thirdmin ``=` `arr[i]` `    ``print``(``"First min = "``, firstmin)``    ``print``(``"Second min = "``, secmin)``    ``print``(``"Third min = "``, thirdmin)`  `# driver program``arr ``=` `[``4``, ``9``, ``1``, ``32``, ``12``]``n ``=` `len``(arr)``Print3Smallest(arr, n)` `# This code is contributed by Shrikant13.`

## C#

 `// C# program to find the first, second``// and third minimum element in an array``using` `System;` `class` `GFG``{``static` `void` `Print3Smallest(``int` `[]array, ``int` `n)``    ``{``            ``int` `firstmin = ``int``.MaxValue;``            ``int` `secmin = ``int``.MaxValue;``            ``int` `thirdmin = ``int``.MaxValue;``            ` `            ``for` `(``int` `i = 0; i < n; i++)``            ``{``                ``/* Check if current element is less than``                ``firstmin, then update first, second and``                ``third */``                ``if` `(array[i] < firstmin)``                ``{``                    ``thirdmin = secmin;``                    ``secmin = firstmin;``                    ``firstmin = array[i];``                ``}``        ` `                ``/* Check if current element is less than``                ``secmin then update second and third */``                ``else` `if` `(array[i] < secmin)``                ``{``                    ``thirdmin = secmin;``                    ``secmin = array[i];``                ``}``        ` `                ``/* Check if current element is less than``                ``then update third */``                ``else` `if` `(array[i] < thirdmin)``                    ``thirdmin = array[i];``            ``}``        ` `            ``Console.WriteLine(``"First min = "` `+ firstmin );``            ``Console.WriteLine(``"Second min = "` `+ secmin );``            ``Console.WriteLine(``"Third min = "` `+ thirdmin );``    ``}``    ` `    ``// Driver code``    ``static` `void` `Main()``    ``{``    ``int` `[]array = ``new` `int``[]{4, 9, 1, 32, 12};``    ``int` `n = array.Length;``    ``Print3Smallest(array, n);``        ` `    ``}``}` `// This code is contributed by Sam007`

## PHP

 ``

## Javascript

 ``

Output:

```First min = 1
Second min = 4
Third min = 9```

Attention reader! All those who say programming isn’t for kids, just haven’t met the right mentors yet. Join the  Demo Class for First Step to Coding Coursespecifically designed for students of class 8 to 12.

The students will get to learn more about the world of programming in these free classes which will definitely help them in making a wise career choice in the future.

My Personal Notes arrow_drop_up