import java.util.*;
public class Sort {
static ArrayList<Integer> quicksort(ArrayList<Integer> list) {
if (list.size() <= 1) {
return list;
}
ArrayList<Integer> lessThanPivot = new ArrayList<Integer>();
ArrayList<Integer> greaterThanPivot = new ArrayList<Integer>();
int pivot = list.get(0);
int length = list.size();
for (int i = 1; i < length; i++) {
int currentValue = list.get(i);
if (currentValue <= pivot) {
lessThanPivot.add(currentValue);
} else {
greaterThanPivot.add(currentValue);
}
}
ArrayList<Integer> sortedList = new ArrayList<Integer>();
sortedList.addAll(quicksort(lessThanPivot));
sortedList.add(pivot);
sortedList.addAll(quicksort(greaterThanPivot));
return sortedList;
}
public static void main(String[] args) {
ArrayList<Integer> list = new ArrayList<Integer>(Arrays.asList(32, 100, 1, 2, 29, 28, 88, 3, 50, 67, 37, 1, 57, 20));
System.out.println(quicksort(list));
}
}