From acb62a7ce42a7d99c1ae819c5e6e190bfbec92a1 Mon Sep 17 00:00:00 2001 From: tarcisiodarocha Date: Wed, 1 Sep 2021 00:31:55 +0000 Subject: [PATCH] Versions --- Quicksort.c.o | Bin 8576 -> 0 bytes Quicksort.c => Quicksort.v1.c | 6 ++-- Quicksort.v2.c | 51 +++++++++++++++++++++++++++ Quicksort.v3.c | 63 ++++++++++++++++++++++++++++++++++ a.out | Bin 0 -> 12744 bytes 5 files changed, 118 insertions(+), 2 deletions(-) delete mode 100755 Quicksort.c.o rename Quicksort.c => Quicksort.v1.c (88%) create mode 100644 Quicksort.v2.c create mode 100644 Quicksort.v3.c create mode 100755 a.out diff --git a/Quicksort.c.o b/Quicksort.c.o deleted file mode 100755 index ac26eb181882d6d945ae86fc80d31c7682a1f75f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8576 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 diff --git a/Quicksort.c b/Quicksort.v1.c similarity index 88% rename from Quicksort.c rename to Quicksort.v1.c index 8ace332..9b90a71 100644 --- a/Quicksort.c +++ b/Quicksort.v1.c @@ -19,9 +19,9 @@ int partition (int arr[], int low, int high) { return (i + 1); } -void quickSort(int arr[], int low, int high){ +void quickSort(int arr[], long int low, long int high){ if (low < high){ - int pi = partition(arr, low, high); + long int pi = partition(arr, low, high); quickSort(arr, low, pi - 1); quickSort(arr, pi + 1, high); } @@ -37,7 +37,9 @@ void printArray(int arr[], int size){ int main(){ int arr[] = {10, 8, 11, 15, 7, 12, 33, 3}; int n = sizeof(arr)/sizeof(arr[0]); + quickSort(arr, 0, n-1); + printf("The sorted array is: \n"); printArray(arr, n); return 0; diff --git a/Quicksort.v2.c b/Quicksort.v2.c new file mode 100644 index 0000000..53243d0 --- /dev/null +++ b/Quicksort.v2.c @@ -0,0 +1,51 @@ +#include + +void swap(int* a, int* b) { + int t = *a; + *a = *b; + *b = t; +} + +int partition (int arr[], int low, int high) { + int pivot = arr[high]; + int i = (low - 1); + for (int j = low; j <= high- 1; j++){ + if (arr[j] <= pivot){ + i++; + swap(&arr[i], &arr[j]); + } + } + swap(&arr[i + 1], &arr[high]); + return (i + 1); +} + +void quickSort(int arr[], long int low, long int high){ + if (low < high){ + long int pi = partition(arr, low, high); + quickSort(arr, low, pi - 1); + quickSort(arr, pi + 1, high); + } +} + +void printArray(int arr[], int size){ + int i; + for (i=0; i < size; i++) + printf("%d ", arr[i]); + printf("\n"); +} + +int main(){ + long int n = 10000; + int *arr = (int*)malloc(n * sizeof(int)); + srand(0); + long int i; + for (i = 0; i < n; i++) { + arr[i] = rand() % n; + } + + quickSort(arr, 0, n-1); + + printf("The sorted array is: \n"); + printArray(arr, n); + return 0; +} \ No newline at end of file diff --git a/Quicksort.v3.c b/Quicksort.v3.c new file mode 100644 index 0000000..3830805 --- /dev/null +++ b/Quicksort.v3.c @@ -0,0 +1,63 @@ +#include +#include + +void swap(int* a, int* b) { + int t = *a; + *a = *b; + *b = t; +} + +int partition (int arr[], int low, int high) { + int pivot = arr[high]; + int i = (low - 1); + for (int j = low; j <= high- 1; j++){ + if (arr[j] <= pivot){ + i++; + swap(&arr[i], &arr[j]); + } + } + swap(&arr[i + 1], &arr[high]); + return (i + 1); +} + +void quickSort(int arr[], long int low, long int high){ + if (low < high){ + long int pi = partition(arr, low, high); + quickSort(arr, low, pi - 1); + quickSort(arr, pi + 1, high); + } +} + +void printArray(int arr[], int size){ + int i; + for (i=0; i < size; i++) + printf("%d ", arr[i]); + printf("\n"); +} + +int main(){ + + long int n = 100000000; + int *arr = (int*)malloc(n * sizeof(int)); + srand(0); + long int i; + for (i = 0; i < n; i++) { + arr[i] = rand() % n; + } + + + clock_t start, end; + double cpu_time_used; + + start = clock(); + quickSort(arr, 0, n-1); + end = clock(); + + cpu_time_used = ((double) (end - start)) / CLOCKS_PER_SEC; + + printf("CLOCKS_PER_SEC: %ld \n", CLOCKS_PER_SEC); + printf("CPU time used is: %f \n", cpu_time_used); + + + return 0; +} \ No newline at end of file diff --git a/a.out b/a.out new file mode 100755 index 0000000000000000000000000000000000000000..96ee6f89f924aa2d133ec19d9d34a59f6f06b02c GIT binary patch literal 12744 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π(AMC&1eYIJV1bzZq~z=$eUF*m+g-J3r$A0lYzQvsqB&OSt^fb@*4j zy;&5zVJ)IXySrUpws?U>)dp0!7ZdbH;QER$r1tcOx;*`=PYZ=3swaAoc|!w({eI2w zb8XwYy*9fLUZV-9o^aT6Nc9J`@FCV6_6+z{UvyyL5U7|+DoAP>qW44t-o8jEtbt#u z+O*HzDy#DDMinm5WD3L0p2jclcDFV+WODeO9f071l`1R3g3`E;sk>VC)Vo{MJxxt* za=Y5@u5XdiD!=LDjYPTIbUUc7jxPLs+BKg+xFQtL0-+#N{XUQ8G42&v^euOg7P&Rz z0@5PF>$6@z%4GA4O_>n%7SwHAHi9-~-aJx$k&xO8m!a@hQu7{=@&$q_9;2F@k6i)f zu1G|f;rE`thW*h7{b4xj#$E*}xamaQf>)rj-fN0H=oti2^Tn!6rxuL-m+w#z>={%G8=MFH z;RyB(7ZU{)cwv9P2NgtauwP>?9sn0)T|FTvYW{=pi(?stLcD8T{$4S9dwpPpN`|U2 zj13LSLk*sRfERqik>P^aG8ast0hkt9rsRJE;XVhKB$)m@(R(LR+UE#1m!&+?Tj0SZ zhV<$El&AzebE0*Zu#J#0>(hHI(OXGSP^*3;;Fn=ZHI_G7f4A+x(7gG)c@ zkBJOXNvzkn++&vXX`i$oFx=CSKJE92(*6!acoOEQ$PPdb_fDiw@7YAD9`c{$i1vX# z?!~A~@8d+PMNL-!$$^I;gE1w2dT%G15Q0>{wf#qge!Y;R_j{tWKSllP;IZmI2^hvi z{5wtW18AR4`&ba+$=d%qpk{sAFA(K-BZMvzr^pli7L?8Uw67pa{tC6U|Aaqd(WmzU zqAyzqpiKJB+g#l3TqL))0BO!Uuy z;n*X6+LzJ2b-JHU0i<(dLB4t{q%dTWT;R*WPtRj zJO>%XsD64sbV`PVRo>Da>;n)(tlAJy|B`-X8Zk1YZ>H4uX3;vyDA7E?|1