From 190d51583cd7ecd78fff7487e9951f262fe86038 Mon Sep 17 00:00:00 2001 From: Vasu Manhas Date: Mon, 26 Apr 2021 20:30:44 +0530 Subject: [PATCH] chore(Java): add shell sort (#262) --- algorithms/Java/README.md | 3 ++- algorithms/Java/sorting/shell-sort.java | 19 +++++++++++++++++++ 2 files changed, 21 insertions(+), 1 deletion(-) create mode 100644 algorithms/Java/sorting/shell-sort.java diff --git a/algorithms/Java/README.md b/algorithms/Java/README.md index 879c8d46..63e316be 100644 --- a/algorithms/Java/README.md +++ b/algorithms/Java/README.md @@ -1,4 +1,4 @@ -# Python +# Java ## Arrays @@ -45,6 +45,7 @@ 5. [Merge Sort](sorting/merge-sort.java) 6. [Quick Sort](sorting/quick-sort.java) 7. [Selection Sort](sorting/selection-sort.java) +8. [Shell Sort](sorting/shell-sort.java) ## Stacks diff --git a/algorithms/Java/sorting/shell-sort.java b/algorithms/Java/sorting/shell-sort.java new file mode 100644 index 00000000..06eedbe7 --- /dev/null +++ b/algorithms/Java/sorting/shell-sort.java @@ -0,0 +1,19 @@ +public class ShellSortApp { + public static void main(String[] args) { + int[] intArray = { 20, 35, -15, 7, 55, 1, -22 }; + for (int gap = intArray.length / 2; gap > 0; gap /= 2) { + for (int i = gap; i < intArray.length; i++) { + int newElement = intArray[i]; + int j = i; + while (j >= gap && intArray[j - gap] > newElement) { + intArray[j] = intArray[j - gap]; + j -= gap; + } + intArray[j] = newElement; + } + } + for (int i = 0; i < intArray.length; i++) { + System.out.println(intArray[i]); + } + } +} \ No newline at end of file