From 17419855cbd9ce9c421ae9a0b0c85890cc295d9f Mon Sep 17 00:00:00 2001 From: Krishna Vedala Date: Tue, 7 Apr 2020 12:22:31 -0400 Subject: [PATCH] revert to single function implementation of shell_sort --- sorting/shell_Sort.c | 43 ------------------------------------------- 1 file changed, 43 deletions(-) diff --git a/sorting/shell_Sort.c b/sorting/shell_Sort.c index f40716ac..d9e7a304 100644 --- a/sorting/shell_Sort.c +++ b/sorting/shell_Sort.c @@ -37,38 +37,10 @@ void shellSort(int array[], int len) swap(&array[j], &array[j + gap]); } -/** - * Optimized algorithm - takes half the time as other - **/ -void shell_sort2(int array[], int LEN) -{ - const int gaps[] = {701, 301, 132, 57, 23, 10, 4, 1}; - const int gap_len = 8; - int i, j, g; - - for (g = 0; g < gap_len; g++) - { - int gap = gaps[g]; - for (i = gap; i < LEN; i++) - { - int tmp = array[i]; - - for (j = i; j >= gap && (array[j - gap] - tmp) > 0; j -= gap) - array[j] = array[j - gap]; - array[j] = tmp; - } - } -#ifdef DEBUG - for (i = 0; i < LEN; i++) - printf("%s\t", data[i]); -#endif -} - int main(int argc, char *argv[]) { int i; int array[ELEMENT_NR]; - int array2[ELEMENT_NR]; int range = 500; int size; clock_t start, end; @@ -76,10 +48,7 @@ int main(int argc, char *argv[]) srand(time(NULL)); for (i = 0; i < ELEMENT_NR; i++) - { array[i] = rand() % range + 1; - array2[i] = array[i]; - } size = ARRAY_LEN(array); @@ -95,17 +64,5 @@ int main(int argc, char *argv[]) printf("%s\n", notation); printf("Time spent sorting: %.4g ms\n", time_spent * 1e3); - printf("--------------------------\n"); - start = clock(); - shell_sort2(array2, size); - end = clock(); - time_spent = (double)(end - start) / CLOCKS_PER_SEC; - - printf("Data Sorted\n"); - show_data(array2, size); - - printf("%s\n", notation); - printf("Time spent sorting: %.4g ms\n", time_spent * 1e3); - return 0; }