Basic Idea
- Pick one element in the array, which will be the pivot.
- Make one pass through the array, called a partition step, re-arranging the entries so that:
- entries smaller than the pivot are to the left of the pivot.
- entries larger than the pivot are to the right
- Recursively apply quick sort to the part of the array that is to the left of the pivot, and to the part on its right.
- No merge step, at the end all the elements are in the proper order
In this lesson we will learn how to write a source code in Java programming language for doing simple quick sort using array in ascending order.
Quick Sort Example :
import java.util.Arrays;
/**
* Created by ProgrammingKnowledge.
*/
public class QuickSort {
static int count = 0;
public static void main(String[] args) {
QuickSort obj = new QuickSort();
Comparable[] array = {4,3,2,5,9,6,3,21,42,4,3,6};
System.out.println("Before Quick sort\n");
System.out.println(Arrays.toString(array));
obj.quickSort(array);
System.out.println("\nAfter Quick sort");
System.out.println(Arrays.toString(array));
}//main
public int quickSort(Comparable[] arr) {
return quickSort(arr, 0, arr.length - 1);
}
private int quickSort(Comparable[] arr, int start, int end) {
if (start < end) {
int q = partition(arr, start, end);
quickSort(arr, start, q - 1);
quickSort(arr, q + 1, end);
}
return count;
} //quickSort
private int partition(Comparable[] array, int begin, int last) {
Comparable pivot = array[last];
int i = begin - 1;
for (int j = begin; j <= last - 1; j++) {
count++;
if (array[j].compareTo(pivot) <= 0) {
i++;
Comparable temp = array[i];
array[i] = array[j];
array[j] = temp;
}
}
Comparable temp_2 = array[i + 1];
array[i + 1] = array[last];
array[last] = temp_2;
return i + 1;
}//partition
}
- Java Simple Programs And Examples
- Java Example – Java Hello World Example
- Java Example – Math and Arithmetic Operators in Java
- Java Example – Variables and Types in Java
- Java Example – Scanner class and Getting User Input using Java
- Java Example – The If-Else If Statement, Nested If Statements, Logical Operators
- Java Example – Arrays in Java Example
- Java Example – ListIterator in Java Example
- Java Example – How to get current timestamp using Java
- Java Example – HashSet in Java with Example
- Java Example – How to read file in Java using BufferedReader
- Java Example – How to get Current Directory in Linux/Windows
- Java Example – Program to reverse an array or string
- Java Example – Sort String Array
- Java Example – Comparing two strings
- Java Example – String concatenation (join strings)
- Java Example – Java String Contains example
- Java Conversion
- Java Example – Convert String to int
- Java Example – Convert Date to String
- Java Example – Convert String to Character Array
- Java Example – Convert into string
- Java Example – Convert ArrayList to String Array
- Java Example – Convert Char Array To String
- Java Example – String Array To List
- Java Sorting algorithms & Techniques
- Java Example – Bubble Sort Algorithm
- Java Example – Insertion Sort Algorithm
- Java Example – Selection Sort Algorithm
- Java Example – Quick Sort Algorithm
- Java Example – Merge Sort Algorithm
- Java Handling Files
- Java I/O – Check If File Path Absolute or not
- Java I/O – Get file name and file path
- Java I/O – Get parent directory of the file or directory
- Java I/O – How to write to a file using BufferedWriter
- Java I/O – How to write to a file using FileOutputStream
- Java I/O – Check file permission and Set file permission
- Java I/O – Read File Using Java BufferedInputStream
- Java I/O – How to create a file in Java
Leave a Reply