0% found this document useful (0 votes)
9 views

Quick Sort

This document contains code for implementing quicksort algorithm in Java. It includes functions for partitioning the array, recursively sorting subarrays, generating random test arrays, measuring sorting time and printing results.

Uploaded by

sunil Kumar
Copyright
© © All Rights Reserved
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
9 views

Quick Sort

This document contains code for implementing quicksort algorithm in Java. It includes functions for partitioning the array, recursively sorting subarrays, generating random test arrays, measuring sorting time and printing results.

Uploaded by

sunil Kumar
Copyright
© © All Rights Reserved
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 4

import java.io.

*;

import java.util.Random;

import java.util.Scanner;

class GFG {

// A utility function to swap two elements

static void swap(int[] arr, int i, int j)

{
int temp = arr[i];

arr[i] = arr[j];

arr[j] = temp;

// This function takes last element as pivot,

// places the pivot element at its correct position

// in sorted array, and places all smaller to left

// of pivot and all greater elements to right of pivot

static int partition(int[] arr, int low, int high)

// Choosing the pivot

int pivot = arr[high];

// Index of smaller element and indicates

// the right position of pivot found so far

int i = (low - 1);


for (int j = low; j <= high - 1; j++) {

// If current element is smaller than the pivot

if (arr[j] < pivot) {

// Increment index of smaller element

i++;

swap(arr, i, j);

}
}

swap(arr, i + 1, high);

return (i + 1);

// The main function that implements QuickSort

// arr[] --> Array to be sorted,

// low --> Starting index,

// high --> Ending index

static void quickSort(int[] arr, int low, int high)

if (low < high) {

// pi is partitioning index, arr[p]

// is now at right place

int pi = partition(arr, low, high);

// Separately sort elements before


// partition and after partition

quickSort(arr, low, pi - 1);

quickSort(arr, pi + 1, high);

// To print sorted array

public static void printArr(int[] arr)

{
for (int i = 0; i < arr.length; i++) {

System.out.print(arr[i] + " ");

System.out.println();

// Driver Code

public static void main(String[] args)

Scanner scanner = new Scanner(System.in);

Random rand = new Random();

System.out.println("Enter the number of elements in the array:");

int N = scanner.nextInt();

int[] arr = new int[N];

System.out.println("Generating random elements for the array:");

for (int i = 0; i < N; i++) {


arr[i] = rand.nextInt(100); // Generates a random integer between 0 and 99

printArr(arr);

// Measure the start time

long startTime = System.nanoTime();

// Function call to sort the array

quickSort(arr, 0, N - 1);

// Measure the end time

long endTime = System.nanoTime();

// Calculate the time taken

long timeTaken = endTime - startTime;

System.out.println("Sorted array:");

printArr(arr);

System.out.println("Time taken to sort the array: " + timeTaken + " nanoseconds");

scanner.close();

You might also like