diff --git a/bucket_sort_openmp.c b/bucket_sort_openmp.c index 6e8fd0cbc5fcff33c701c908dc42511f878126c5..6635599e4b3dcfeabc6e84ebe6fa0d9c195be93b 100644 --- a/bucket_sort_openmp.c +++ b/bucket_sort_openmp.c @@ -5,13 +5,14 @@ #include <assert.h> #include <limits.h> #include <string.h> +#include <time.h> #include "random.c" #include "insertion_sort_func.c" void sort(int * arr, int len){ - insertion_sort(arr,len); + insertion_sort(arr,len); } int main(int argc, char ** argv){ @@ -21,11 +22,16 @@ int main(int argc, char ** argv){ exit(1); } + clock_t start, end, total; + + + + int thread_count =strtol(argv[1],NULL,10); - int * compl_arr; - int i,j; - int num_elmts; + int * compl_arr; + int i,j; + int num_elmts; //input scanf("%d",&num_elmts); @@ -39,11 +45,11 @@ int main(int argc, char ** argv){ printf("%d ", compl_arr[i]); } printf("\n"); - - //bagi-bagi - int * num_elmts_in_buckets; - int * buckets_bin; - int ** buckets; + start = clock(); + //bagi-bagi + int * num_elmts_in_buckets; + int * buckets_bin; + int ** buckets; num_elmts_in_buckets = (int*) malloc(thread_count*sizeof(int)); buckets = (int**) malloc(thread_count*sizeof(int*)); @@ -79,12 +85,14 @@ int main(int argc, char ** argv){ //copy memcpy(&compl_arr[bucket_offset[i]],buckets[i],num_elmts_in_buckets[i]*sizeof(int)); } - + end = clock(); + total = end - start; + for (i=0;i<num_elmts;i++){ printf("%d ", compl_arr[i]); } printf("\n"); - + printf("Total waktu %f",(double)total/CLOCKS_PER_SEC); free(bucket_offset); free(num_elmts_in_buckets); for (i=0;i<thread_count;i++)