thread.h> #include // number of elements in array #define MAX 64000// number of threads #define THREAD_MAX 4 // array of size MAX int a[MAX]; int part = 0; // merge function for merging two parts void merge(int low, int mid, int high) { int* left = (int *)malloc((mid - low + 1)*sizeof(int)); int* right = (int *)malloc((high-mid)*sizeof(int)); // n1 is size of left part and n2 is size // of right part int n1 = mid - low + 1, n2 = high - mid, i, j; // storing values in left part for (i = 0; i < n1; i++) left[i] = a[i + low]; // storing values in right part for (i = 0; i < n2; i++) right[i] = a[i + mid + 1]; int k = low; i = j = 0; // merge left and right in ascending order while (i < n1 && j < n2) { if (left[i] <= right[j]) a[k++] = left[i++]; else a[k++] = right[j++]; } // insert remaining values from left while (i < n1) { a[k++] = left[i++]; } // insert remaining values from right while (j < n2) { a[k++] = right[j++]; }...
Already registered? Login
Not Account? Sign up
Enter your email address to reset your password
Back to Login? Click here