//Quick Sort Algorithm import java.util.*; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int N = sc.nextInt(); int[] array = new int[N]; for (int i = 0; i < N; i++) array[i] = sc.nextInt(); quickSort(array, 0, N - 1); System.out.println("Sorted Elements: "); for (int i = 0; i < N; i++) { System.out.print(array[i] + " "); } System.out.println(); } public static int partition(int[] array, int p, int q) { int v = array[p]; int i = p, j = q + 1; do { do { i++; } while (i < q && array[i] < v); do { j--; } while (j > p && array[j] > v); if (i < j) { interchange(array, i, j); } } while (i < j); interchange(array, p, j); return j; } public static void quickSort(int[] array, int p, int q) { if (p < q) { int j = partition(array, p, q); quickSort(array, p, j - 1); quickSort(array, j + 1, q); } } public static void interchange(int[] array, int i, int j) { int temp = array[i]; array[i] = array[j]; array[j] = temp; } } /* Sample Test Case: Input: 5 12 4 7 9 2 Output: Sorted Elements: 2 4 7 9 12 */