Skip to content
Snippets Groups Projects
Commit 2a87d5b6 authored by Fauzan Rifqy's avatar Fauzan Rifqy
Browse files

Issues fixed

parent 6842e198
No related merge requests found
...@@ -22,25 +22,34 @@ bool mine(tid, element, thr, max){ ...@@ -22,25 +22,34 @@ bool mine(tid, element, thr, max){
int start = tid*range; int start = tid*range;
int end = start + range - 1; int end = start + range - 1;
return (element > start && element < end); if(tid == thr-1){
return ((element >= start && element <= end) || element == max);
}else{
return (element >= start && element <= end);
}
} }
unsigned int rand_interval(unsigned int min, unsigned int max) int rand_interval(int max)
{ {
int r; return rand() % max +1;
const unsigned int range = 1 + max - min; }
const unsigned int buckets = RAND_MAX / range;
const unsigned int limit = buckets * range;
/* Create equal size buckets all in a row, then fire randomly towards
* the buckets until you land in one of them. All buckets are equally
* likely. If you land off the end of the line of buckets, try again. */
do
{
r = rand();
} while (r >= limit);
return min + (r / buckets); int random_number(int min_num, int max_num)
{
int result=0,low_num=0,hi_num=0;
if(min_num<max_num)
{
low_num=min_num;
hi_num=max_num+1; // this is done to include max_num in output.
}else{
low_num=max_num+1;// this is done to include max_num in output.
hi_num=min_num;
}
srand(time(NULL));
result = (rand()%(hi_num-low_num))+low_num;
return result;
} }
int main(int argc, char* argv[]){ int main(int argc, char* argv[]){
...@@ -58,8 +67,10 @@ int main(int argc, char* argv[]){ ...@@ -58,8 +67,10 @@ int main(int argc, char* argv[]){
int elements[n], min=0, max=n, orderedElements[n]; int elements[n], min=0, max=n, orderedElements[n];
for(int i=0; i < n; i++){ for(int i=0; i < n; i++){
elements[i] = rand_interval(min, n); elements[i] = rand_interval(n);
printf("%d - ", elements[i]);
} }
printf("\n");
//bagi ke beberapa embercd //bagi ke beberapa embercd
//foreach element in elements //foreach element in elements
...@@ -99,11 +110,11 @@ int main(int argc, char* argv[]){ ...@@ -99,11 +110,11 @@ int main(int argc, char* argv[]){
#pragma omp barrier #pragma omp barrier
st = 0; st = 0;
en = counter[0]-1; en = counter[0];
for(int i=0; i<tid; i++){ for(int i=0; i<tid; i++){
st += counter[i]; st += counter[i];
if((i+1) >= tid){ if((i+1) >= tid){
en = st + counter[i+1]-1; en = st + counter[i+1];
} }
} }
int ll = 0; int ll = 0;
......
No preview for this file type
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment