Sort
Quicksort
public int[] quickSort(int[] arr) {
helper(arr,0,arr.length-1);
return arr;
}
public void helper(int[] arr, int start, int end) {
if(start>=end) return;
int mid = partition(arr,start,end);
helper(arr,start,mid-1);
helper(arr,mid+1,end);
}
public int partition(int[] arr, int lo, int hi) {
int pivot = arr[hi]; //pivot (Element to be placed at right position)
int i = lo; //left of i is element smaller than pivot
for (int j=lo; j<=hi; j++) { //element to be processed (include j)
if (arr[j] <= pivot)
swap(arr, i++ ,j);
}
return i-1; //return the pivot
}
public void swap(int[] arr, int i, int j) {
int tmp = arr[i];
arr[i] = arr[j];
arr[j] = tmp;
}
Mergesort
Last updated