# Write a Java Program to Implement Quick Sort Algorithm

## Write a Java Program to Implement Quick Sort Algorithm

 ``` 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73``` ```import java.util.Arrays; class Quicksort { // method to find the partition position static int partition(int array[], int low, int high) { // choose the rightmost element as pivot int pivot = array[high]; // pointer for greater element int i = (low - 1); // traverse through all elements // compare each element with pivot for (int j = low; j < high; j++) { if (array[j] <= pivot) { // if element smaller than pivot is found // swap it with the greater element pointed by i i++; // swapping element at i with element at j int temp = array[i]; array[i] = array[j]; array[j] = temp; } } // swapt the pivot element with the greater element specified by i int temp = array[i + 1]; array[i + 1] = array[high]; array[high] = temp; // return the position from where partition is done return (i + 1); } static void quickSort(int array[], int low, int high) { if (low < high) { // find pivot element such that // elements smaller than pivot are on the left // elements greater than pivot are on the right int pi = partition(array, low, high); // recursive call on the left of pivot quickSort(array, low, pi - 1); // recursive call on the right of pivot quickSort(array, pi + 1, high); } } } // Main class class Main { public static void main(String args[]) { int[] data = { 8, 7, 2, 1, 0, 9, 6 }; System.out.println("Unsorted Array"); System.out.println(Arrays.toString(data)); int size = data.length; // call quicksort() on array data Quicksort.quickSort(data, 0, size - 1); System.out.println("Sorted Array in Ascending Order "); System.out.println(Arrays.toString(data)); } } ```