#include <bits/stdc++.h>
#include <omp.h>
using namespace std;
const int MAX = 1e8;
int *data, *temp, N;
void merge(int l1, int r1, int r2) {
int top = l1, p = l1, q = r1;
while (p < r1 || q < r2) {
if (q >= r2 || (p < r1 && data[p] <= data[q])) {
temp[top++] = data[p++];
}
else {
temp[top++] = data[q++];
}
}
for (top = l1; top < r2; top++) {
data[top] = temp[top];
}
}
void merge_sort(int l, int r) {
int i, j;
for (i = 2; i < r; i *= 2) {
#pragma omp parallel for private(j) shared(r, i)
for (j = 0; j < r-i; j += i*2) {
merge(j, j+i, min(j+i*2, r));
}
}
}
int main(int argc, char *argv[0]) {
N = atoi(argv[1]);
data = (int*) malloc(sizeof(int)*N);
temp = (int*) malloc(sizeof(int)*N);
freopen("data.txt", "r", stdin);
for (int i = 0; i < N; i++)
sca
omp计算时间(高精度)
最新推荐文章于 2023-11-01 17:17:35 发布