Skip to content

Commit 3f84d8a

Browse files
authored
Create Kth Smallest Element.java
1 parent 27f5c6b commit 3f84d8a

File tree

1 file changed

+51
-0
lines changed

1 file changed

+51
-0
lines changed

Heap/Kth Smallest Element.java

Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
// Heap Questions:::
2+
//Problem Statement :: Kth Smallest Element in given array.
3+
// IP : arr[] =7 10 4 3 20 15 ,k=3
4+
// OP : 7
5+
6+
/*
7+
Broute Force :: Array Sort:
8+
TC : O(nlogn)
9+
SC : O(1)
10+
11+
Optimal Approch:: Heap Method::
12+
TC : O(nlogk)
13+
SC : O(k)
14+
15+
*/
16+
import java.util.*;
17+
public class Main
18+
{
19+
public static void main(String[] args) {
20+
int arr[] = new int[]{6,10,4,3,20,15,21,18,2};
21+
int k=5;
22+
int val =kthSmallestele(arr,k);
23+
System.out.println(k+"th Smallest ::"+val);
24+
val =kthSmallestele(arr,7);
25+
System.out.println("7th Smallest ::"+val);
26+
val =kthSmallestele(arr,3);
27+
System.out.println("3rd Smallest ::"+val);
28+
val =kthSmallestele(arr,8);
29+
System.out.println("8th Smallest ::"+val);
30+
//Lets Check :: 2,3,4,6,10,15,18,20,21
31+
}
32+
public static int kthSmallestele(int[] arr,int k){
33+
//Smallest given:: so we will make Max heap::
34+
PriorityQueue<Integer> maxheap = new PriorityQueue<>((a,b)->b-a);
35+
for(int i=0;i<arr.length;i++){
36+
maxheap.add(arr[i]);
37+
if(maxheap.size()>k){
38+
maxheap.poll();
39+
}
40+
}
41+
return maxheap.peek();
42+
}
43+
}
44+
45+
/*
46+
OutPut ::
47+
5th Smallest ::10
48+
7th Smallest ::18
49+
3rd Smallest ::4
50+
8th Smallest ::20
51+
*/

0 commit comments

Comments
 (0)