From ea225590646c84892c9b439788c6fa80dcf43698 Mon Sep 17 00:00:00 2001 From: dionisPrifti Date: Tue, 2 Oct 2018 04:41:18 +0200 Subject: [PATCH] BAEL-2209 : Quicksort Dionis Prifti (#5365) * Merged changes from the original repository. * Added event streaming example with WebFlux. * Deleted auto-generated code. * Deleted auto-generated code. * BAEL-2209 : Added java class and JUnit test for QuickSort implementation. * Revert "Added event streaming example with WebFlux." This reverts commit 21527b34643bbb0d1437a0ab3ef392024a391107. * BAEL-2209: Removed main method from Quicksort class. * BAEL-2209 : Added the implementation and unit test for 3-Way Quicksort. --- .../algorithms/quicksort/QuickSort.java | 39 +++++++++++++++++++ .../quicksort/ThreeWayQuickSort.java | 38 ++++++++++++++++++ .../quicksort/QuickSortUnitTest.java | 17 ++++++++ .../quicksort/ThreeWayQuickSortUnitTest.java | 15 +++++++ 4 files changed, 109 insertions(+) create mode 100644 algorithms/src/main/java/com/baeldung/algorithms/quicksort/QuickSort.java create mode 100644 algorithms/src/main/java/com/baeldung/algorithms/quicksort/ThreeWayQuickSort.java create mode 100644 algorithms/src/test/java/com/baeldung/algorithms/quicksort/QuickSortUnitTest.java create mode 100644 algorithms/src/test/java/com/baeldung/algorithms/quicksort/ThreeWayQuickSortUnitTest.java diff --git a/algorithms/src/main/java/com/baeldung/algorithms/quicksort/QuickSort.java b/algorithms/src/main/java/com/baeldung/algorithms/quicksort/QuickSort.java new file mode 100644 index 0000000000..e113cc3242 --- /dev/null +++ b/algorithms/src/main/java/com/baeldung/algorithms/quicksort/QuickSort.java @@ -0,0 +1,39 @@ +package com.baeldung.algorithms.quicksort; + +public class QuickSort { + + public static void quickSort(int arr[], int begin, int end) + { + if (begin < end) { + int partitionIndex = partition(arr, begin, end); + + // Recursively sort elements of the 2 sub-arrays + quickSort(arr, begin, partitionIndex-1); + quickSort(arr, partitionIndex+1, end); + } + } + + private static int partition(int arr[], int begin, int end) + { + int pivot = arr[end]; + int i = (begin-1); + + for (int j=begin; j