import java.util.Arrays;
import java.util.List;
public class QuickSort {
public static void quickSort(int[] arr){
qsort(arr, 0, arr.length-1);
}
private static void qsort(int[] arr, int low, int high){
if (low < high){
int pivot=partition(arr, low, high);
qsort(arr, low, pivot-1);
qsort(arr, pivot+1, high);
}
}
private static int partition(int[] arr, int low, int high){
int pivot = arr[low];
while (low<high){
while (low<high && arr[high]>=pivot) --high;
arr[low]=arr[high];
while (low<high && arr[low]<=pivot) ++low;
arr[high] = arr[low];
}
arr[low] = pivot;
return low;
}
public static void main(String[] args) {
System.out.println("Hello World!");
int [] res=new int[]{5,2,4,7,1,8};
quickSort(res);
System.out.println(Arrays.toString(res));
}
}
def quicksort(seq):
if len(seq) <= 1:
return seq
less = []
more = []
base = seq.pop(0)
for i in seq:
if i < base:
less.append(i)
else:
more.append(i)
return quicksort(less) + [base] + quicksort(more)
seq = [5,4,3,6,7,2]
print (quicksort(seq))