From b38a519adc31a09c8c84d9a7a9dd3d52bbba6b34 Mon Sep 17 00:00:00 2001 From: 222000134 <3118406833@qq.com> Date: Wed, 15 Feb 2023 20:53:15 +0800 Subject: [PATCH] first commit --- Untitled1.cpp | 54 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 54 insertions(+) create mode 100644 Untitled1.cpp diff --git a/Untitled1.cpp b/Untitled1.cpp new file mode 100644 index 0000000..14983b0 --- /dev/null +++ b/Untitled1.cpp @@ -0,0 +1,54 @@ +// C++ implementation of Shell Sort + #include + using namespace std; + /* function to sort arr using shellSort */ + int shellSort(int arr[], int n) + { + // Start with a big gap, then reduce the gap + for (int gap = n/2; gap > 0; gap /= 2) + { + // Do a gapped insertion sort for this gap size. + // The first gap elements a[0..gap-1] are already in gapped order + // keep adding one more element until the entire array is + // gap sorted + for (int i = gap; i < n; i += 1) + { + // add a[i] to the elements that have been gap sorted + // save a[i] in temp and make a hole at position i + int temp = arr[i]; + + // shift earlier gap-sorted elements up until the correct + // location for a[i] is found + int j; + for (j = i; j >= gap && arr[j - gap] > temp; j -= gap) + arr[j] = arr[j - gap]; + + // put temp (the original a[i]) in its correct location + arr[j] = temp; + } + } + return 0; + } + + void printArray(int arr[], int n) + { + for (int i=0; i < n; i++) + cout << arr[i] << " "; + } + + int main() + { + int arr[] = {6, 17, 28, 1, 3}, i; + int n = sizeof(arr)/sizeof(arr[0]); + + cout << "Array before sorting: \n"; + printArray(arr, n); + + shellSort(arr, n); + + cout << "\nArray after sorting: \n"; + printArray(arr, n); + + return 0; + } + -- GitLab