diff --git a/sorting/Quick_Sort.java b/sorting/Quick_Sort.java new file mode 100644 index 0000000..50a9888 --- /dev/null +++ b/sorting/Quick_Sort.java @@ -0,0 +1,25 @@ +static int partition(int[] array, int begin, int end) { + int pivot = end; + + int counter = begin; + for (int i = begin; i < end; i++) { + if (array[i] < array[pivot]) { + int temp = array[counter]; + array[counter] = array[i]; + array[i] = temp; + counter++; + } + } + int temp = array[pivot]; + array[pivot] = array[counter]; + array[counter] = temp; + + return counter; +} + +public static void quickSort(int[] array, int begin, int end) { + if (end <= begin) return; + int pivot = partition(array, begin, end); + quickSort(array, begin, pivot-1); + quickSort(array, pivot+1, end); +}