From fe9c863d8b4700537ce2756897848147d693609b Mon Sep 17 00:00:00 2001 From: klaywert Date: Tue, 8 Oct 2019 20:29:32 -0300 Subject: [PATCH] Added InsertionSort --- .../java/sortalgorithms/InsertionSort.java | 17 ++++++++ src/main/java/sortalgorithms/QuickSort.java | 40 +++++++++++++++++++ 2 files changed, 57 insertions(+) create mode 100644 src/main/java/sortalgorithms/InsertionSort.java create mode 100644 src/main/java/sortalgorithms/QuickSort.java diff --git a/src/main/java/sortalgorithms/InsertionSort.java b/src/main/java/sortalgorithms/InsertionSort.java new file mode 100644 index 0000000..4af7972 --- /dev/null +++ b/src/main/java/sortalgorithms/InsertionSort.java @@ -0,0 +1,17 @@ + +public void insertionSort(int[] array) { + int i; + int key; + + for (int j = 1; j < array.length; j++) { + key = array[ j ]; + i = j - 1; + + while ((i >= 0) && (array[ i ] > key)) { + array[ i + 1 ] = array[ i ]; + i--; + } + + array[ i + 1 ] = key; + } +} diff --git a/src/main/java/sortalgorithms/QuickSort.java b/src/main/java/sortalgorithms/QuickSort.java new file mode 100644 index 0000000..4f76a4b --- /dev/null +++ b/src/main/java/sortalgorithms/QuickSort.java @@ -0,0 +1,40 @@ +public void quickSort(int[] array, int left, int right) { + int i, j, v; + while ( right > left ) { + j = right; + i = left - 1; + v = array[ right ]; + + while ( true ) { + do { + i++; + } while ( array[ i ] < v && i < j ); + do { + j--; + } while ( array[ j ] > v && i < j ); + + if ( i >= j ) + break; + + swapKeys( array , i , j ); + + } + + swapKeys( array , i , right ); + + if (( i - 1 - left ) <= ( right - i - 1 )) { + quickSort( array , left , i - 1 ); + left = i + 1; + } else { + quickSort( array , i + 1 , right ); + right = i - 1; + } + } +} + +public void swapKeys(int[] array, int i, int j) { + int temp; + temp = array[ i ]; + array[ i ] = array[ j ]; + array[ j ] = temp; +}