Skip to content

Commit f811865

Browse files
author
Ram swaroop
committed
coded + unit tested
1 parent 9790a48 commit f811865

File tree

1 file changed

+32
-18
lines changed

1 file changed

+32
-18
lines changed
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,5 @@
11
package com.hackerrank.algorithms.arraysandsorting;
22

3-
import java.util.ArrayList;
4-
import java.util.List;
53
import java.util.Scanner;
64

75
/**
@@ -13,27 +11,43 @@
1311
*/
1412
public class QuickSort2 {
1513

16-
static void quickSort(int[] ar, int start, int end) {
17-
int pivot = ar[0];
18-
List<Integer> ar1 = new ArrayList<>();
19-
List<Integer> ar2 = new ArrayList<>();
20-
21-
for (int i = start; i < end; i++) {
22-
if (ar[i] < pivot) {
23-
ar1.add(ar[i]);
24-
} else if (ar[i] > pivot) {
25-
ar2.add(ar[i]);
14+
static int partition(int[] a, int start, int end) {
15+
16+
int pivot = start, temp;
17+
18+
for (int i = start + 1; i <= end; i++) {
19+
// maintains the relative positioning of elements in each partition
20+
if (a[i] < a[pivot]) {
21+
start++;
22+
temp = a[i];
23+
int j;
24+
for (j = i; j > start; j--) {
25+
a[j] = a[j - 1];
26+
}
27+
a[j] = temp;
2628
}
2729
}
2830

29-
//TODO
31+
temp = a[pivot];
32+
while (pivot < start) {
33+
a[pivot] = a[pivot + 1];
34+
pivot++;
35+
}
36+
a[pivot] = temp;
37+
38+
return pivot;
3039
}
3140

32-
static void printArray(int[] ar) {
33-
for (int n : ar) {
34-
System.out.print(n + " ");
41+
static void quickSort(int[] ar, int start, int end) {
42+
if (start < end) {
43+
int p = partition(ar, start, end);
44+
quickSort(ar, start, p - 1);
45+
quickSort(ar, p + 1, end);
46+
for (int i = start; i <= end; i++) {
47+
System.out.print(ar[i] + " ");
48+
}
49+
System.out.println();
3550
}
36-
System.out.println("");
3751
}
3852

3953
public static void main(String[] args) {
@@ -43,6 +57,6 @@ public static void main(String[] args) {
4357
for (int i = 0; i < n; i++) {
4458
ar[i] = in.nextInt();
4559
}
46-
quickSort(ar, 0, ar.length);
60+
quickSort(ar, 0, n - 1);
4761
}
4862
}

0 commit comments

Comments
 (0)