Skip to content

Commit d182b2c

Browse files
OttoWBittt2013anurag
authored andcommitted
Add QuickSort in java (#814)
1 parent 9138aad commit d182b2c

File tree

1 file changed

+61
-0
lines changed

1 file changed

+61
-0
lines changed

sorting/quick_sort/QuickSort.java

Lines changed: 61 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,61 @@
1+
class QuickSort {
2+
public static void main(String[] args) throws Exception {
3+
4+
int quantity = 20;
5+
int[] vector = new int[quantity];
6+
7+
for (int i = 0; i < vector.length; i++) {
8+
vector[i] = (int) (Math.random() * quantity);
9+
}
10+
11+
System.out.println("Vector before QuickSort: ");
12+
for (int i = 0; i < vector.length ; i++ ) {
13+
System.out.print(vector[i] + "-");
14+
}
15+
16+
long initialTime = System.currentTimeMillis();
17+
18+
quickSort(vector, 0, vector.length - 1);
19+
20+
long finalTime = System.currentTimeMillis();
21+
22+
System.out.println(" ");
23+
System.out.println("Vector after quickSort: ");
24+
25+
for (int i = 0; i < vector.length ; i++ ) {
26+
System.out.print(vector[i] + "-");
27+
}
28+
System.out.println(" ");
29+
System.out.println("Execution time = " + (finalTime - initialTime) + " ms");
30+
31+
}
32+
33+
private static void quickSort(int[] vector, int first, int last) {
34+
if (first < last) {
35+
int referencePosition = separar(vector, first, last);
36+
quickSort(vector, first, referencePosition - 1);
37+
quickSort(vector, referencePosition + 1, last);
38+
}
39+
}
40+
41+
private static int separar(int[] vector, int first, int last) {
42+
int reference = vector[first];
43+
int i = first + 1, j = last;
44+
while (i <= j) {
45+
if (vector[i] <= reference)
46+
i++;
47+
else if (reference < vector[j])
48+
j--;
49+
else {
50+
int swap = vector[i];
51+
vector[i] = vector[j];
52+
vector[j] = swap;
53+
i++;
54+
j--;
55+
}
56+
}
57+
vector[first] = vector[j];
58+
vector[j] = reference;
59+
return j;
60+
}
61+
}

0 commit comments

Comments
 (0)