package tech.algorithms.sort; import java.util.Random; public class QuickSort { public static void main(String[] args) { // int[] array = { 13, 19, 9, 5, 1, 2, 8, 7, 4, 23, 2, 6, 11 }; int[] array = new int[100]; Random r = new Random(); for (int i = 0; i < array.length; i++) { array[i] = r.nextInt(100); } QuickSort qs = new QuickSort(); qs.sort(array, 0, array.length - 1); for (int loopIndex = 0; loopIndex < array.length; loopIndex++) { System.out.println(array[loopIndex]); } } private void sort(int[] array, int bottom, int top) { if (bottom < top) { int divdePoint = partition(array, bottom, top); sort(array, bottom, divdePoint - 1); sort(array, divdePoint + 1, top); } } private int partition(int[] array, int bottom, int top) { int divideValue = array[top]; int i = bottom; for (int loopIndex = bottom; loopIndex < top; loopIndex++) { if (array[loopIndex] < divideValue) { int temp = array[loopIndex]; array[loopIndex] = array[i]; array[i] = temp; i++; } } int temp = array[top]; array[top] = array[i]; array[i] = temp; return i; } }