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

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
```

## Recommended: Please try your approach on {IDE} first, before moving on to the solution.

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[0]); ` `    ``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 upadte 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

 ` `

Output:

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

Attention reader! Don’t stop learning now. Get hold of all the important DSA concepts with the DSA Self Paced Course at a student-friendly price and become industry ready.

My Personal Notes arrow_drop_up

Check out this Author's contributed articles.

If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.

Improved By : shrikanth13, Mithun Kumar