1. Write a OpenMP program to sort an array on n elements using both sequential and parallel mergesort(using Section). Record the difference in execution time. #include <stdio.h> #include <stdlib.h> #include <omp.h> void merge(int arr[], int l, int m, int r) { int i = l, j = m + 1, k = 0; int temp[r - l + 1]; while (i <= m && j <= r) { if (arr[i] <= arr[j]) temp[k++] = arr[i++]; else temp[k++] = arr[j++]; } while (i <= m) temp[k++] = arr[i++]; while (j <= r) temp[k++] = arr[j++]; for (i = l, k = 0; i <= r; i++, k++) arr[i] = temp[k]; } void sequentialMergeSort(int arr[], int l, int r) { if (l < r) { int m = (l + r) / 2; sequentialMergeSort(arr, l, m); sequentialMergeSort(arr, m + 1, r); merge(arr, l, m, r); } } void parallelMergeSort(int arr[], int l, int r) { if (l < r) { int m = (l + r) / 2; #pragma omp parallel sections { #pragma omp section parallelMergeSort(arr, l, m); #pragma omp section parallelMergeSort(arr, m + 1, r); } mer...
Posts
Showing posts from October, 2025