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