-
Notifications
You must be signed in to change notification settings - Fork 3
Expand file tree
/
Copy pathSmallestk_element.java
More file actions
49 lines (43 loc) · 1.02 KB
/
Copy pathSmallestk_element.java
File metadata and controls
49 lines (43 loc) · 1.02 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
import java.util.*;
import java.lang.*;
import java.io.*;
class Main
{
public static void main (String[] args)
{
int arr[] = new int[]{10,4,5,8,11,6,26};
int n = arr.length;int k=5;
int index=kthSmallest(arr,n,k);
System.out.print(arr[index]);
}
static int partition(int arr[], int l, int h)
{
int pivot=arr[h];
int i=l-1;
for(int j=l;j<=h-1;j++){
if(arr[j]<pivot){
i++;
int temp=arr[i];
arr[i]=arr[j];
arr[j]=temp;
}
}
int temp=arr[i+1];
arr[i+1]=arr[h];
arr[h]=temp;
return i+1;
}
static int kthSmallest(int arr[],int n,int k){
int l=0,r=n-1;
while(l<=r){
int p=partition(arr,l,r);
if(p==k-1)
return p;
else if(p>k-1)
r=p-1;
else
l=p+1;
}
return -1;
}
}