From 1671a527cb5af01da111380d7e74fe942e056584 Mon Sep 17 00:00:00 2001 From: dishankkumaryadav <87142751+dishankkumaryadav@users.noreply.github.com> Date: Sat, 15 Oct 2022 17:55:18 +0530 Subject: [PATCH] Shell Sort Added Shell sort algorithm in c++, python and java --- Sorting/Shell Sort/ShellSort.java | 39 +++++++++++++++++++++++ Sorting/Shell Sort/shell_sort.cpp | 41 +++++++++++++++++++++++++ Sorting/Shell Sort/shell_sort_python.py | 20 ++++++++++++ 3 files changed, 100 insertions(+) create mode 100644 Sorting/Shell Sort/ShellSort.java create mode 100644 Sorting/Shell Sort/shell_sort.cpp create mode 100644 Sorting/Shell Sort/shell_sort_python.py diff --git a/Sorting/Shell Sort/ShellSort.java b/Sorting/Shell Sort/ShellSort.java new file mode 100644 index 0000000..f64d7fe --- /dev/null +++ b/Sorting/Shell Sort/ShellSort.java @@ -0,0 +1,39 @@ +class ShellSort +{ + static void printArray(int arr[]) + { + int n = arr.length; + for (int i=0; i 0; gap /= 2) + { + for (int i = gap; i < n; i += 1) + { + int temp = arr[i]; + int j; + for (j = i; j >= gap && arr[j - gap] > temp; j -= gap) + arr[j] = arr[j - gap]; + arr[j] = temp; + } + } + return 0; + } + + public static void main(String args[]) + { + int arr[] = {12, 34, 54, 2, 3}; + System.out.println("Array before sorting"); + printArray(arr); + + ShellSort ob = new ShellSort(); + ob.sort(arr); + + System.out.println("Array after sorting"); + printArray(arr); + } +} \ No newline at end of file diff --git a/Sorting/Shell Sort/shell_sort.cpp b/Sorting/Shell Sort/shell_sort.cpp new file mode 100644 index 0000000..c0eecef --- /dev/null +++ b/Sorting/Shell Sort/shell_sort.cpp @@ -0,0 +1,41 @@ +#include +using namespace std; + +int shellSort(int arr[], int n) +{ + for (int gap = n/2; gap > 0; gap /= 2) + { + for (int i = gap; i < n; i += 1) + { + int temp = arr[i]; + int j; + for (j = i; j >= gap && arr[j - gap] > temp; j -= gap) + arr[j] = arr[j - gap]; + + arr[j] = temp; + } + } + return 0; +} + +void printArray(int arr[], int n) +{ + for (int i=0; i0: + j=gap + while j=0: + if arr[i+gap]>arr[i]: + break + else: + arr[i+gap],arr[i]=arr[i],arr[i+gap] + i=i-gap + j+=1 + gap=gap//2 + +arr2 = [12, 34, 54, 2, 3] +print("input array:",arr2) + +shellSort(arr2,len(arr2)) +print("sorted array",arr2) \ No newline at end of file