#include <stdio.h>
#include <stdlib.h>
#include <omp.h>
#define N 10000
int main() {
int arr[N], i, j, min, temp;
// Initialize array
for (i = 0; i < N; i++) {
arr
[i
] = rand() % 100000; // increased the range of randomly generated number just to get a proper output }
#pragma omp parallel shared(arr)
{
#pragma omp for schedule(dynamic)
for (i = 0; i < N-1; i++) {
min = i;
// Find the minimum
for (j = i+1; j < N; j++) {
if (arr[j] < arr[min]) {
min = j;
}
}
// Swap the minimum
temp = arr[i];
arr[i] = arr[min];
arr[min] = temp;
}
}
printf("Sorted first 50 elements: "); for (i = 0; i < 50; i++) {
}
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxzdGRsaWIuaD4KI2luY2x1ZGUgPG9tcC5oPgoKI2RlZmluZSBOIDEwMDAwCgppbnQgbWFpbigpIHsKICAgIGludCBhcnJbTl0sIGksIGosIG1pbiwgdGVtcDsKCiAgICAvLyBJbml0aWFsaXplIGFycmF5CiAgICBmb3IgKGkgPSAwOyBpIDwgTjsgaSsrKSB7CiAgICAgICAgYXJyW2ldID0gcmFuZCgpICUgMTAwMDAwOyAvLyBpbmNyZWFzZWQgdGhlIHJhbmdlIG9mIHJhbmRvbWx5IGdlbmVyYXRlZCBudW1iZXIganVzdCB0byBnZXQgYSBwcm9wZXIgb3V0cHV0CiAgICB9CiAgICAKICAgICNwcmFnbWEgb21wIHBhcmFsbGVsIHNoYXJlZChhcnIpCiAgICB7CiAgICAgICAgI3ByYWdtYSBvbXAgZm9yIHNjaGVkdWxlKGR5bmFtaWMpCiAgICAgICAgZm9yIChpID0gMDsgaSA8IE4tMTsgaSsrKSB7CiAgICAgICAgICAgIG1pbiA9IGk7CiAgICAgICAgICAgIAogICAgICAgICAgICAvLyBGaW5kIHRoZSBtaW5pbXVtCiAgICAgICAgICAgIGZvciAoaiA9IGkrMTsgaiA8IE47IGorKykgewogICAgICAgICAgICAgICAgaWYgKGFycltqXSA8IGFyclttaW5dKSB7CiAgICAgICAgICAgICAgICAgICAgbWluID0gajsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQoKICAgICAgICAgICAgLy8gU3dhcCB0aGUgbWluaW11bSAKICAgICAgICAgICAgdGVtcCA9IGFycltpXTsKICAgICAgICAgICAgYXJyW2ldID0gYXJyW21pbl07CiAgICAgICAgICAgIGFyclttaW5dID0gdGVtcDsKICAgICAgICB9CiAgICB9CgogICAgcHJpbnRmKCJTb3J0ZWQgZmlyc3QgNTAgZWxlbWVudHM6ICIpOwogICAgZm9yIChpID0gMDsgaSA8IDUwOyBpKyspIHsKICAgICAgICBwcmludGYoIiVkICIsIGFycltpXSk7CiAgICB9CiAgICAKICAgIHByaW50ZigiXG4iKTsKCiAgICByZXR1cm4gMDsKfQo=