From 0716181e0b3d08057600f241c6ec6e754b3ffa83 Mon Sep 17 00:00:00 2001 From: 13511056 <13511056@hpc.if.itb.ac.id> Date: Fri, 19 Feb 2016 11:28:25 +0700 Subject: [PATCH] Bucket Sort Final --- .bucketSort.c.swp | Bin 0 -> 12288 bytes bucketSort | Bin 0 -> 17206 bytes bucketSort.c | 101 ++++++++++++++++++++++++++++++++++++++++++++-- 3 files changed, 98 insertions(+), 3 deletions(-) create mode 100644 .bucketSort.c.swp create mode 100755 bucketSort diff --git a/.bucketSort.c.swp b/.bucketSort.c.swp new file mode 100644 index 0000000000000000000000000000000000000000..c7572b7d89d941f29b026d4885bcb849d9e083fe GIT binary patch literal 12288 zcmeI2U1%It6vuDGs8g*<^XkV*V#4f4Hrb}J#$=;0trE#LC6ZW(%Q~64n@qYpyUxs} zwh~1}#47r(wOYZx_<=7z`Xqimh$#5+SP(?Sx8RFU{_n?rByFmaKndJ|A3JmIIp?1H zzvs>pvP(k?(|J0aImB??&e(gef4R`r`Ox**1B_*dN3z+Wk$c6^)vlGAoAFB-KVHf> zxbwF2eYTNsaJI&S{PDr1x_gqxk5$7s<8BvZ>_!2jz|Iw@$EAV$_RkL=%npfUy*=I3 zbzpwyc})hRfKk9GU=%P47zK<1MggOMQDDy~5Z5}`bEx(@UGakc?AY?DAI*nRz$jo8 zFbWt2i~>dhqkvJsC}0#Y3K#{90((#a2mh__xRJ5?O(-7!|8M;L|L1Lt{R}<_pMdk= z74S01f{j}l`w4si-T`lb6JP|~1G>O3`x*NYd<@P44n{#A`1=;d{s6y%OW-r`5_l5K zfN3xa`amz}0pH)u*hO#-yarwc%iu6L1o}WP=mrEjz{WntegNNqufSX2dBDLOcoaMg zrobe40Nergfxj%ogG=BeZ~>eL=fIm_4LG0(9sx(eFz5su(DMuMAvgopfYA6UFbcZC zUEphI|2}vZya-+Z4}!bFo#5gP$PJEy-#Z!m4SWZ_1)qWo;B9ag#9$swfk`j{%w-fX z3hYe<)^}d^E~MCnB8Zq(+j*XAonf7>bp^XK|1LDe4pXd)j)-{Rxz&0QN0cMm4`NCt zDo(jvb?wMM!>c7>OC(QK!?IU|g;~-kbONs!)GH$D*!;}Q7*gerPZy`Em5OlVwtSk+ z=ZlZe&dnT2Q-3oBPY7?3re)d`kK`w}ix*>C;)MzEx`OGzk8M#>S{5dJ#WF>~cI;QU z97{A)U=2lH<`u3KaN??OJK^%$Vz!_|nYGR=i$9IDSs7-PY9XpG*-`BAFica=eB><i z`w6+0cu3U}H8MUC^r)FiB(l2Houh*ZdIl9q1(M|XQLXH_s(>+VY;DRI6FOBKKahJP za-_*!al&MhM42)dF;pmu6j<KC0P<Lt6Nb*|MQ<Qmz#hfzrUDU6t#LUP!>F(3SV4@O zTJg)AZ1QM=hN!>45m=z{#x3SRAwp-%LuMCYrD{mFi-#<YkxSz_3TS|`xKE{ouiSsE z#Y>CY)~dco5q^TII#8CDCb9HDI3qKb7V@|r1|+)`Gl<3dB^$bmb@~PULsr>+l*r{s z{jfEm0#Yeel<lLYp)vANef!?Sg2FJBDomUR>8PIl+z`S=Ju0c1Bu8_T$Bq>9lP73U zCR2lv+O%aJ7qz!6SuRZ()Y6je%WP{yy>M7`K2cU{{i2iQ(GzE;6mo7i+_Wg|Ht3Ro z*%}<wJ=-H|p*|0-iB6Iyzu{Ej6}NWUZcacc)t(U?(t73Uep4K_daJ6sqK2rdInk4- z#F8B!Ev^>imWW2NS0S|uNufhl_0}|#tje9SEIq5T>u~L~sEv!8eMIYv<y0#|gx3Bw z&Db~<DR;Etq(a~%wXhS^*W78LrtIyj_K`f{qCp$w`Jxil+*f$LQgTx-s<({RNk)q9 zYb?KM_z$}4>6>$3;oY80=-IWeSRjPL`$ZenGx=#+6&=?S@!t-C<wOz3k#6-9-hSfE ztX_#YOv%>J|5Ha4k#s}u#Jt$dA?0m9)AArCb(8A{rRwEJOzar3UO#Zlb&u1ysy(wZ k(Qd5N{4Eyojk3iQ#rSquhOsRhzA4K7(q)dGUzN6h09JvnqW}N^ literal 0 HcmV?d00001 diff --git a/bucketSort b/bucketSort new file mode 100755 index 0000000000000000000000000000000000000000..51c51fde9460404d2247ba1afa250f04127cfa71 GIT binary patch literal 17206 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 A{Qv*} literal 0 HcmV?d00001 diff --git a/bucketSort.c b/bucketSort.c index 4517139..14c640e 100644 --- a/bucketSort.c +++ b/bucketSort.c @@ -1,10 +1,105 @@ #include <stdio.h> #include <stdlib.h> +#include <string.h> +#include <time.h> #include <omp.h> +#include <assert.h> + +int *create_rand_nums(int num_elements, int* counts, int* displs, int num_buckets) { + int *rand_nums = (int *)malloc(sizeof(int) * num_elements); + assert(rand_nums != NULL); + int bucket_size = RAND_MAX / num_buckets; + int i, j; + int** buckets; + buckets = (int **)malloc(sizeof(int*) * num_buckets); + for(i = 0; i < num_buckets; i++){ + counts[i] = 0; + displs[i] = 0; + buckets[i] = (int *)malloc(sizeof(int) * num_elements); + } + for (i = 0; i < num_elements; i++) { + int random = (rand() % RAND_MAX); + int bucket = random / bucket_size; + buckets[bucket][counts[bucket]] = random; + counts[bucket]++; + for(j = bucket+1; j < num_buckets; j++){ + displs[j]++; + } + } + for(i = 0; i < num_buckets; i++){ + memcpy(rand_nums + displs[i], buckets[i], counts[i]); + //printf("count %d\n", counts[i]); + free(buckets[i]); + } + free(buckets); + return rand_nums; +} -void bucketSort(); /* Thread Function */ +int get_bucket_count(int bucket, int *array, int num_elements, int num_buckets){ + int bucket_size = RAND_MAX / num_buckets; + int i=0; + int count = 0; -int main(int argc, chra *argv[]) { + for(i = 0; i < num_elements; i++){ + if((array[i]/bucket_size )== bucket) count++; + } + return count; +} + - return 0; +void sort(int *array, int n) { + int c, d, t; + for (c = 1 ; c <= n - 1; c++) { + d = c; + + while ( d > 0 && array[d] < array[d-1]) { + t = array[d]; + array[d] = array[d-1]; + array[d-1] = t; + d--; + } + //printf("saya bucket ke : %d\n",c); + } } + +int main(int argc, char** argv) { + int* sendcounts; + int* displacements; + + if (argc != 2) { + fprintf(stderr, "Usage: number of elements\n"); + exit(1); + } + + + int num_elements = atoi(argv[1]); + srand(time(NULL)); + + int thread_num = omp_get_thread_num(); + int thread_count = omp_get_num_threads(); + + int *rand_nums = NULL; + sendcounts = (int *)malloc(sizeof(int)*thread_count); + displacements = (int *)malloc(sizeof(int)*thread_count); + if (thread_num == 0) { + + rand_nums = create_rand_nums(num_elements, sendcounts, displacements, thread_count); + printf("Ukuran thread : %d\n", thread_count); + } + printf("thread number : %d\n", thread_num); + + int *sub_rand_nums = (int *)malloc(sizeof(int) * num_elements); + assert(sub_rand_nums != NULL); + #pragma omp parallel num_threads(thread_count) + printf("Jumlah thread : %d\n", get_bucket_count(thread_num, sub_rand_nums, num_elements, thread_count)); + sort(sub_rand_nums, get_bucket_count(thread_num, sub_rand_nums, num_elements, thread_count)); + + free(sub_rand_nums); + + if (thread_num == 0) { + free(rand_nums); + } + free(sendcounts); + free(displacements); +} + -- GitLab