-
Notifications
You must be signed in to change notification settings - Fork 118
/
PartitionArray.java
42 lines (30 loc) · 947 Bytes
/
PartitionArray.java
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
package Algorithms;
public class PartitionArray {
public static void main(String[] strs) {
PartitionArray pa = new PartitionArray();
int A[] = {1,2,6,7,9,3,4,6};
System.out.println(pa.partition(A, 0, A.length - 1, 7));
for(int i: A) {
System.out.println(i);
}
}
public int partition(int A[], int start, int end, int key) {
int left = start;
int right = end;
while (left < right) {
while (left < right && A[left] <= key) {
left++;
}
while (left < right && A[right] > key) {
right--;
}
swap(A, left, right);
}
return left;
}
public void swap(int[] A, int one, int two) {
int tmp = A[one];
A[one] = A[two];
A[two] = tmp;
}
}