Skip to content

Instantly share code, notes, and snippets.

@YusufAbdelaziz
Created October 7, 2020 14:40
Show Gist options
  • Save YusufAbdelaziz/fd8239a469947aed24b9a6079dc0bc55 to your computer and use it in GitHub Desktop.
Save YusufAbdelaziz/fd8239a469947aed24b9a6079dc0bc55 to your computer and use it in GitHub Desktop.
QuickSort in Java
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
public class QuickSort {
public static List<Integer> quickSort(List<Integer> array) {
if (array.size() < 2) {
return array;
} else {
int pivotIndex = array.size() / 2;
int pivot = array.get(pivotIndex);
array.remove(pivotIndex);
List<Integer> lessThanPivotArray = array.stream().filter((e) -> e <= pivot).collect(Collectors.toList());
List<Integer> greaterThanPivotArray = array.stream().filter((e) -> e > pivot).collect(Collectors.toList());
List<Integer> sortedLessThanArray = quickSort(lessThanPivotArray);
List<Integer> sortedGreaterThanArray = quickSort(greaterThanPivotArray);
ArrayList<Integer> result = new ArrayList<>();
result.addAll(sortedLessThanArray);
result.add(pivot);
result.addAll(sortedGreaterThanArray);
return result;
}
}
public static void main(String[] args) {
ArrayList<Integer> arr = new ArrayList<>();
arr.add(7);
arr.add(1);
arr.add(2);
arr.add(3);
arr.add(4);
arr.add(5);
arr.add(6);
var sorted = new ArrayList<>(quickSort(arr));
System.out.println(Arrays.toString(sorted.toArray()));
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment