From f0bcc44173a4f21b34a9d637e3f3f3c6759dc2f8 Mon Sep 17 00:00:00 2001
From: adinb <you@example.com>
Date: Fri, 19 Feb 2016 11:33:36 +0700
Subject: [PATCH] fixes

---
 omp_bucket   | Bin 0 -> 15424 bytes
 omp_bucket.c |  90 +++++++++++++++++++++++++++++++++++++++++++++++++++
 omp_hello    | Bin 0 -> 15440 bytes
 3 files changed, 90 insertions(+)
 create mode 100755 omp_bucket
 create mode 100644 omp_bucket.c
 create mode 100755 omp_hello

diff --git a/omp_bucket b/omp_bucket
new file mode 100755
index 0000000000000000000000000000000000000000..36f09b9d2ef0b1b9f5598333201e7f95f2378f90
GIT binary patch
literal 15424
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
Zy$dc{cl7+m=Ubuny>dXCY?b!*{}+zYD8B#z

literal 0
HcmV?d00001

diff --git a/omp_bucket.c b/omp_bucket.c
new file mode 100644
index 0000000..8a9b800
--- /dev/null
+++ b/omp_bucket.c
@@ -0,0 +1,90 @@
+#include <stdio.h> 
+#include <stdlib.h> 
+#include <omp.h> 
+#define MAX_VALUE 10000
+
+void bucket_sort(int* sorted_array, int element_num); /* Thread function */ 
+void insertion_sort(int* sorted_array, int size);
+
+
+int main(int argc, char *argv[]) { 
+    
+    int i;
+    
+    // Num of threads
+    int thread_count = atoi(argv[1]); 
+    // Num of elements
+    int element_num = atoi(argv[2]);
+    
+    int range = MAX_VALUE / thread_count;
+    
+    // Seed
+    srand(time(NULL));
+    
+    // Bucket
+    //int* bucket = (int *)malloc(sizeof(int) * element_num);
+    //memset (bucket, 0, (sizeof(int) * element_num));
+    
+    // Sorted Array
+    int* sorted_array = (int *)malloc(sizeof(int) * element_num);
+    memset (sorted_array, 0, (sizeof(int) * element_num));
+    
+    // Do bucket sort
+    #pragma omp parallel num_threads(thread_count) 
+    bucket_sort(sorted_array, element_num); 
+    
+    for (i=0;i<element_num;i++){
+        printf("%d ", sorted_array[i]);
+    }
+    return 0; 
+} 
+ 
+void insertion_sort(int* sorted_array, int size)
+{
+  int n, array[size], c, d, t;
+  
+  
+  int my_rank = omp_get_thread_num(); 
+  int thread_count = omp_get_num_threads(); 
+  n = thread_count+1;
+  
+  printf("%d\n", my_rank);
+  
+  for (c = 0; c < size; c++) {
+    array[c] = rand() % (size) + (my_rank)*size;
+    printf("before sort : %d\n", array[c]);
+  }
+  
+  // Sorting
+  for (c = 1 ; c <= size - 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--;
+    }
+  } 
+  
+  for (c=0;c<size;c++){
+    printf("%d",array[c]);
+      
+}
+  
+  memcpy(&array, sorted_array+(my_rank * size), size);
+
+}
+
+void bucket_sort(int* sorted_array, int element_num) { 
+    int my_rank = omp_get_thread_num(); 
+    int thread_count = omp_get_num_threads();
+    
+    int bucket_size = element_num / thread_count;
+    
+    insertion_sort(sorted_array, bucket_size);
+    
+    
+     
+} 
diff --git a/omp_hello b/omp_hello
new file mode 100755
index 0000000000000000000000000000000000000000..a745d655107f106dae2b35d5377a94038a452a42
GIT binary patch
literal 15440
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

literal 0
HcmV?d00001

-- 
GitLab