Quicksort Array in Java
Quicksort is a divide and conquer algorithm. It first divides a large list into two smaller sublists and then recursively sort the two sublists. If we want to sort an array without any extra space, quicksort is a good option. On average, time complexity is O(n log(n)).
The basic step of sorting an array are as follows:
 Select a pivot, normally the middle one
 From both ends, swap elements and make all elements on the left less than the pivot and all elements on the right greater than the pivot
 Recursively sort left part and right part
Here is a very good animation of quicksort.
public class QuickSort { public static void main(String[] args) { int[] x = { 9, 2, 4, 7, 3, 7, 10 }; System.out.println(Arrays.toString(x)); int low = 0; int high = x.length  1; quickSort(x, low, high); System.out.println(Arrays.toString(x)); } public static void quickSort(int[] arr, int low, int high) { if (arr == null  arr.length == 0) return; if (low >= high) return; // pick the pivot int middle = low + (high  low) / 2; int pivot = arr[middle]; // make left < pivot and right > pivot int i = low, j = high; while (i <= j) { while (arr[i] < pivot) { i++; } while (arr[j] > pivot) { j; } if (i <= j) { int temp = arr[i]; arr[i] = arr[j]; arr[j] = temp; i++; j; } } // recursively sort two sub parts if (low < j) quickSort(arr, low, j); if (high > i) quickSort(arr, i, high); } } 
Output:
9 2 4 7 3 7 10
2 3 4 7 7 9 10
2 3 4 7 7 9 10
<pre><code> String foo = "bar"; </code></pre>

kk

Anirudh Mathad

Nanda firizki

Dylan Yiyang Qiu

u2

Elver

JavaPrograms

theLastUnicorn

crackerplace

Pravesh Jain

Govind

Ashish Thakran

kd