 Java Program to Implement Quick Sort Algorithm

# Java Program to Implement Quick Sort Algorithm

#### In this example, we will learn to implement quick sort algorithm in Java.

To understand this example, you should have the knowledge of the following Java programming topics:

## Example: Java Program to Implement Quick Sort Algorithm

``````// Quick sort in Java

import java.util.Arrays;

class Main {

// divide the array on the basis of pivot
int partition(int array[], int low, int high) {

// select last element as pivot
int pivot = array[high];

// initialize the second pointer
int i = (low - 1);

// Put the elements smaller than pivot on the left and
// greater than pivot on the right of pivot
for (int j = low; j < high; j++) {

// compare all elements with pivot
// swap the element greater than pivot
// with element smaller than pivot
// to sort in descending order
// if (array[j] >= pivot)
if (array[j] <= pivot) {

// increase the second pointer if
// smaller element is swapped with greater
i++;
int temp = array[i];
array[i] = array[j];
array[j] = temp;
}
}

// put pivot in position
// so that element on left are smaller
// element on right are greater than pivot
int temp = array[i + 1];
array[i + 1] = array[high];
array[high] = temp;
return (i + 1);
}

void quickSort(int array[], int low, int high) {
if (low < high) {

// Select pivot position and put all the elements smaller
// than pivot on the left and greater than pivot on right
int pi = partition(array, low, high);

// sort the elements on the left of the pivot
quickSort(array, low, pi - 1);

// sort the elements on the right of pivot
quickSort(array, pi + 1, high);
}
}

// Driver code
public static void main(String args[]) {

// create an unsorted array
int[] data = { 8, 7, 2, 1, 0, 9, 6 };
int size = data.length;

// create an object of the Main class
Main qs = new Main();

// pass the array with the first and last index
qs.quickSort(data, 0, size - 1);
System.out.println("Sorted Array: ");
System.out.println(Arrays.toString(data));
}
}``````

Output 1

```Unsorted Array:
[8, 7, 2, 1, 0, 9, 6]
Sorted Array:
[0, 1, 2, 6, 7, 8, 9]```

Here, the elements of the array are sorted in ascending order. If we want to sort the elements in descending order, then inside the for loop of the `partition()` method, we can change the code as:

``````// the less than sign is changed to greater than
if (array[j] >= pivot) {``````