From 3d9067b12ab1e159bac515571cf61e1e71597756 Mon Sep 17 00:00:00 2001 From: kkname776 <73051069+kkname776@users.noreply.github.com> Date: Sun, 18 Oct 2020 11:51:35 +0530 Subject: [PATCH] Create Quick sort.java Quick sort in Java --- Java_Programs_for_beginners/Quick sort.java | 54 +++++++++++++++++++++ 1 file changed, 54 insertions(+) create mode 100644 Java_Programs_for_beginners/Quick sort.java diff --git a/Java_Programs_for_beginners/Quick sort.java b/Java_Programs_for_beginners/Quick sort.java new file mode 100644 index 000000000..fd5bbfb4d --- /dev/null +++ b/Java_Programs_for_beginners/Quick sort.java @@ -0,0 +1,54 @@ +// Quick sort in Java + +import java.util.Arrays; + +class QuickSort { + + // Function to partition the array on the basis of pivot element + int partition(int array[], int low, int high) { + + // Select the pivot element + int pivot = array[high]; + 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++) { + if (array[j] <= pivot) { + i++; + int temp = array[i]; + array[i] = array[j]; + array[j] = temp; + } + } + 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 left and greater than pivot on right + int pi = partition(array, low, high); + + // Sort the elements on the left of 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[]) { + int[] data = { 8, 7, 2, 1, 0, 9, 6 }; + int size = data.length; + QuickSort qs = new QuickSort(); + qs.quickSort(data, 0, size - 1); + System.out.println("Sorted Array in Ascending Order: "); + System.out.println(Arrays.toString(data)); + } +}