Skip to content

Commit 051ff9c

Browse files
committed
quick select kth min
1 parent 854a13d commit 051ff9c

File tree

2 files changed

+44
-1
lines changed

2 files changed

+44
-1
lines changed
Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
package Array;
2+
3+
/**
4+
* Created by dheeraj on 7/17/2016.
5+
*/
6+
public class KthMinElementQuickSelect {
7+
8+
private static int getKthMin(int k, int[] ints) {
9+
int part = partition(ints, 0, ints.length - 1);
10+
while (part != k-1) {
11+
if (part > k-1) {
12+
part = partition(ints, 0, part - 1);
13+
} else {
14+
part = partition(ints, part + 1, ints.length - 1);
15+
}
16+
}
17+
return ints[part];
18+
}
19+
20+
private static int partition(int[] array, int start, int end) {
21+
int pivot = array[end];
22+
int index = start;
23+
24+
int temp;
25+
for (int a = start; a < end; a++) {
26+
if (array[a] < pivot) {
27+
temp = array[index];
28+
array[index] = array[a];
29+
array[a] = temp;
30+
index++;
31+
}
32+
}
33+
temp = array[index];
34+
array[index] = pivot;
35+
array[end] = temp;
36+
return index;
37+
}
38+
39+
public static void main(String[] strings) {
40+
int[] arr = new int[]{7, 10, 4, 3, 20, 15};
41+
System.out.println(getKthMin(2, arr));
42+
}
43+
}
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,4 +18,4 @@ public static void main(String[] strings) {
1818
System.out.println(result);
1919
}
2020
}
21-
}
21+
}

0 commit comments

Comments
 (0)