From 52996e54fa9c6d1938734f3d1d6e570018d8b6cd Mon Sep 17 00:00:00 2001
From: Adin Baskoro <13513058@std.stei.itb.ac.id>
Date: Fri, 19 Feb 2016 14:10:27 +0700
Subject: [PATCH] time fix

---
 omp_bucket   | Bin 15752 -> 15784 bytes
 omp_bucket.c |  26 ++++++++++++++++++++------
 2 files changed, 20 insertions(+), 6 deletions(-)

diff --git a/omp_bucket b/omp_bucket
index 3e93d270673fe4e6d72f69658e25c67a55e92982..b8fe71755b7603d043237b5569c3b025da603d1a 100755
GIT binary patch
delta 1503
zcmYjR4NOy46n^*h#}?XGm~Jh>v6lZ1`OAK21%yVQc`TBcXa$+d2;e$Iq8rR)z}`sN
z<gKf=-jdaX5to?2j7FAcmbtM2foPXB5eZvxaSNL@bYqJI7adOacJ6ybxyd`{eCM9~
zopbJaxqY3(oq=2w588+HQ4=MvXz<q9GZsbx7N$}*EDXMYe%f^VWV$}(u;T!qH)t8{
zNiQ1R`ldq+({)<iys?tvu1_2jAL%Y3RDp*R>Qgi-idr@unpif~P2V>qyJPoFb!=>m
zVz4#Q%)4q_`&@3<-aVZ6PmUA1!$L<$a0fVHo)aeHLysj%V5j1etjB$9NMJ{O?6~PN
z8!BZ3?PjpOaa77qbr^hX;OxWhabX&<AqeCer#bH*h!fl+U{(n~y2eNkvOVkiPPW4w
z?nrd<!`Im;!Hb#k8At>yKrlse_zg7YV~2h2DAzb67y@24ihOLelnr&w!XZQsodAcx
zMizG{kr9aWsRIIg-p5A#yCvc!E<@nyJ}|A@<YBk^JYhc?LEi2N^}g+CD4bgtDpNZr
zy84wuLUQj>lm9(Ql1R^C&j0d<a%*zc(1Uvvl5>7Tzv6X=Idqc~mO0@XC)|jK{*@#y
zPq-c6{LOQ(yAHSxx(>PO4^Fx{;Vuls3ImA?9kKXdkH{Pz$635!u+k4#vEKMfVL+ap
zAd&Iy@@MT!vQlo&pHK9jD&awu@WU=UVbO6DtEzYoZZo#3-btYF&qj0k+=?WHp`-{9
zdq7V^A>*J^S0!m4^um9VlmyqC1C14dt_8gtbOdx57c)7i7Vl>Ykpl~0>+qM1*|`PI
zHNp21%upVUi%I&3-fq-ZpH`hx`!%0vy&F{DAj1Y71i{)2UkJV%c!f#TTmkDIPBEow
zX2GJc)3jZ)88YUIJ*F2JJoo$?C?-17KBZANzG*e5ABEpqO(H2B>I7-H2*EZm;`&OE
z6xEFrZ1X697j2WgTn_lqz{fO2CDszt83d^c_VI}>IEkD!GVJ9OXXIT4e!v^rC{#)S
z)3|1+f}=ds^aOm(Gwn}6h&P@jY~{-Fi@dQPpdD>f@D<+p3t_KN;0SN5C$O4Sr4EL9
zE#8@7;|Bpf*9;r#;5lAPZOkT&Es~)UTok29@C?v!1xhb1q!&6^tJK~?*y-S2IX60@
zpjIVwtAaent%S5qK~0qTGk_KFdcaDivWbF)26jRU%Mtt_!;YG<H8V|19I4IXj?Ci-
z-N9dFok<&P@%DPYy*y4gZlY+lDoBLx4oIYZP1}bXvojL@zU%Ehr>j(nym&f0fOK!Q
zwKu>0ZbPe>mU{|`7wp>*ieZ%Ztja_!fi@!xE(VlLdBozp8X6ulA-@ns@YVbwG>;n!
zPC)prf-xlFvxSA|AN)PYCA<Rim}oCDAruvz#rL!{t-&uk3iL6hFDix`93}dtHME33
zca$Wods=^UyqfG;ducsuFK?4*caG8MIR3q~1ntMRvI_mREah?*aL<;FxT`Eve`)Q$
auHrAsO3-2aYgq*v!M5@W`1=~lbN&a>KkCN-

delta 1418
zcmZ8h4M-bT9KUzT(nNE2y0%NjP0Sjt()tDKj9)WHd+>A)+G(njv~|R7!rC#}T3M|N
zlCA9{4J3Unb5ushgxaxD;WAKGFhQ6Wq)WvPJI3ay9k&@6v(R?-<Mw}dVz)hb|KI=n
z{oenMH`;%yKURWf;-wcIXC=;9XX7^~pVkD^&;*~MXafBb{kUo6LG2=W)!ut4OMAQZ
zgOYpJ9nC>?i0`!7#~=|;r+n(F{cD6oI+}Gb?*`9tE7F0~iqx6DBjx&+?ns@=(qvko
zh1ss^RvgY?Oa{iukp%INVX}zHR76SOU>b-2K$!R!L2V*)^0$nFp{L~udO6z{TF_b^
z>N-*8wGji;5hWc?BBIPrD;bu(?9o;s^69;SL`0dFE-Q(slgANdA>z;A;2d$r!b%23
zluVtHI6e<Wh!ypLgDBeaZZlJZ%!oBcl$nU4Mfd2;%UsS->`4N&`fv1=8P@%<hQb3H
z_o4eqX5{~w)>uvI_&JkEBCMf0B_l<T>AKFQFodHoe9W$5Hh??$VKj3%>O9BQ8E*eL
zM%OV}!Q?wkzSpii&~;3H0&4s3U!C$}avKI*2m{v0ktMAFqC|P99i>}@LcZiNtrd1w
zz8RC-<$W^IWxw3k5-mEBQ^@&ow2WbE6S><&ZnTuLHg=qPWYOB`XTl-N;rFtrAi5gt
ztGYe}MD7FjFrqN;B*4p$bbS%<x5v6}hp`sJg-QTB05RYUV2r*lZbPRi5i3v+odDfS
ze-&L-9;oYv9fV%z*(Z_3oD=*m!KQ>QmN;^5u!9fQv#?LY{()9W`A>ZX+FiOAv{}&X
zv{%~Y*aX#;z<^g%l1rp%sh%!8*M$;lO~EHTYN6K)UC#$B9A||Js6qW8onJta8x+mq
z1IckMG|Rn+PSR!fRLGzMJ~Vs`e(UTGrq;wkTH>RjY#Az1O}k-^gtF(1sA*mZiSKZz
z&NQxsgo7+r$C_B;*d_+oVthOxcCYIl;`{40<00WR%7dbpSPwqFTlkr^Xf!P!-M7^p
zibA_*-T=2HzQ@LGEM{~9*PK4^aGWW@GyK;&^#G&J$2&}_0kc;d90Y0mP3w?(&H>Zv
z5o%ei%e1;V*I6*dwdWzHn4JR)4ex}ZZt0{OJf*0OR(T3+%#q)w`aQh}{X(aU&g7TB
z#RoTs!)G|&YKb#pzXcN6nr$a(U-4GQ(c9sVF4%n*Ssf{kA+@0-iqzTCdV~_xy?wJq
z;*x+aq#0H&=T-M^Z|C97xl~qxV)SO&MKneS%ljbx@A64>jZRclpc(o*$Ry3HtUx}s
zsZv7dy!u+zpEiEZN}Ijqj>Otk5_Hg8?MSX!Nt*IjXZ`CH<ZE8c^@={@vR=^uE}%Bm
yO!BCUI_j$trgD9w<C`Kgbc=qzV<R1|_c(^uMl?pR8d<2J5y;9Q-=%{M+x`I!6wucI

diff --git a/omp_bucket.c b/omp_bucket.c
index f176507..edaebd1 100644
--- a/omp_bucket.c
+++ b/omp_bucket.c
@@ -56,15 +56,29 @@ int main(int argc, char *argv[]) {
 
 void insertion_sort(int* sorted_array, int size, int element_num)
 {
-  int n, array[size], c, d, t;
-
+  int n, c, d, t;
 
+  int interval;
   int my_rank = omp_get_thread_num();
   int thread_count = omp_get_num_threads();
-  n = thread_count+1;
+
+  interval = size;
+  // if there is remainder of thread then the last thread hold all the element
+  if ((element_num - thread_count * size) != 0){
+    if(my_rank == thread_count-1){
+      // printf("%d\n", my_rank );
+
+      size = element_num % thread_count + size;
+
+      // printf("%d\n", size);
+    }
+  }
+
+  int array[size];
 
   for (c = 0; c < size; c++) {
     array[c] = rand() % (size) + (my_rank)*size;
+    // printf("%d ", array[c]);
   }
 
   // Sorting
@@ -80,13 +94,13 @@ void insertion_sort(int* sorted_array, int size, int element_num)
     }
   }
 
-
+//   printf("Rank : %d\n", my_rank);
 //   for (c=0;c<size;c++){
-//     printf("%d",array[c]);
+//     printf("%d ",array[c]);
 //
 // }
   // printf("\nSize : %d\n", size);
-  memcpy(sorted_array+(my_rank * size), &array, size*sizeof(int));
+  memcpy(sorted_array+(my_rank * interval), &array, size*sizeof(int));
 }
 
 void bucket_sort(int* sorted_array, int element_num) {
-- 
GitLab