Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.util.*;
- class QuickSort {
- //selects last element as pivot, pi using which array is partitioned.
- int partition(int intArray[], int low, int high) {
- int pi = intArray[high];
- int i = (low - 1); // smaller element index
- for (int j = low; j < high; j++) {
- // check if current element is less than or equal to pi
- if (intArray[j] <= pi) {
- i++;
- // swap intArray[i] and intArray[j]
- int temp = intArray[i];
- intArray[i] = intArray[j];
- intArray[j] = temp;
- }
- }
- // swap intArray[i+1] and intArray[high] (or pi)
- int temp = intArray[i + 1];
- intArray[i + 1] = intArray[high];
- intArray[high] = temp;
- return i + 1;
- }
- //routine to sort the array partitions recursively
- void quick_sort(int intArray[], int low, int high) {
- if (low < high) {
- //partition the array around pi=>partitioning index and return pi
- int pi = partition(intArray, low, high);
- // sort each partition recursively
- quick_sort(intArray, low, pi - 1);
- quick_sort(intArray, pi + 1, high);
- }
- }
- }
- class Main {
- public static void main(String args[]) {
- //initialize a numeric array, with random numbers from 1-100
- int myArraySize = 100;
- int[] myArray = new int[myArraySize];
- for (int i = 0; i < myArraySize; i++) {
- myArray[i] = (int) ((Math.random() * 100) + 1);
- }
- int n = myArray.length;
- //print the original array
- System.out.println("Original Array: " + Arrays.toString(myArray));
- //call quick_sort routine using QuickSort object
- QuickSort obj = new QuickSort();
- obj.quick_sort(myArray, 0, n - 1);
- //print the sorted array
- System.out.println("\nSorted Array: " + Arrays.toString(myArray));
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment