Sorting Summary
Bubble Sort
public static void bubbleSort(int[] arr) {
// Total run n - 1
for(int i=0; i<arr.length-1; i++) {
for(int j=arr.length-1; j>i; j--) {
if(arr[j] < arr[j-1]) {
swap(arr, j-1, j);
}
}
}
}Quick Sort
public static void quickSort(int[] arr, int left, int right) {
if(left >= right)
return ;
int pivotPos = partition(arr, left, right);
quickSort(arr, left, pivotPos-1);
quickSort(arr, pivotPos+1, right);
}
public static int partition(int[] arr, int left, int right) {
int pivotKey = arr[left];
while(left < right) {
while(left < right && arr[right] >= pivotKey)
right --;
arr[left] = arr[right]; //move small to left
while(left < right && arr[left] <= pivotKey)
left ++;
arr[right] = arr[left]; //move big to right
}
arr[left] = pivotKey; //put pivot to middle
return left;
}Merge Sort
Last updated