# K’th Smallest/Largest Element using STL

• Difficulty Level : Easy
• Last Updated : 30 Jul, 2017

Given an array and a number k where k is smaller than size of array, we need to find the k’th smallest element in the given array.

Examples:

```Input : arr[] = {7, 10, 4, 3, 20, 15}
k = 2
Output : 4
Smallest element is 3. Second smallest
is 4.

Input : arr[] = {7, 10, 4, 3, 3, 15}
k = 2
Output : 4
Even if there are more than one occurrences
of 3, answer should be 4.

Input :arr[] = {7, 10, 4, 3, 20, 15}
k = 4
Output : 10
```

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

We use set in C++ STL.
1) Insert all elements into a set.
2) Traverse the set and print k-th element.

 `// STL based C++ program to find k-th smallest ` `// element. ` `#include ` `using` `namespace` `std; ` ` `  `int` `kthSmallest(``int` `arr[], ``int` `n, ``int` `k) ` `{ ` `    ``// Insert all elements into the set ` `    ``set<``int``> s; ` `    ``for` `(``int` `i = 0; i < n; i++) ` `        ``s.insert(arr[i]); ` ` `  `    ``// Traverse set and print k-th element ` `    ``auto` `it = s.begin(); ` `    ``for` `(``int` `i = 0; i < k - 1; i++) ` `        ``it++; ` `    ``return` `*it; ` `} ` ` `  `int` `main() ` `{ ` `    ``int` `arr[] = { 12, 3, 5, 7, 3, 19 }; ` `    ``int` `n = ``sizeof``(arr) / ``sizeof``(arr), k = 2; ` `    ``cout << ``"K'th smallest element is "` `         ``<< kthSmallest(arr, n, k); ` `    ``return` `0; ` `} `

Output:

```K'th smallest element is 5
```

Time complexity of above solution is O(n Log n). Note that set in STL uses a self-balancing BST internally and therefore time complexity of search and insert operations is O(log n).

Related Posts :

This article is contributed by Roshan Halwai. 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.