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