私はバブルソートアルゴリズムのc++コードを書いていますが、openmpを使用して並列化する方法がわからないので、助けてください.....これはコードです:
#include "stdafx.h"
#include <iostream>
#include <time.h>
#include <omp.h>
using namespace std;
int a[40001];
void sortArray(int [], int);
int q=0;
int _tmain(int argc, _TCHAR* argv[])
{
int x=40000;
int values[40000];
for (int i=0;i<x;i++)
{
values[i]=rand();
}
cout << "Sorting Array .......\n";
clock_t start = clock();
sortArray(values, x);
cout << "The Array Now Sorted\n";
printf("Elapsed Time : %f\n", ((double)clock() - start) / CLOCKS_PER_SEC);
cout << "\n";
}
void sortArray(int array[], int size)
{
bool swap;
int temp;
do
{
swap = false;
for (int count = 0; count < (size - 1); count++)
{
if (array[count] > array[count + 1])
{
temp = array[count];
array[count] = array[count + 1];
array[count + 1] = temp;
swap = true;
}
}
}while (swap);
}
これで約13秒かかります。sortArrayメソッドの「forstatment」の前に##pragmaompを並列に配置しようとしましたが、約13秒かかりましたが、違いはありませんでした。できるだけ早く助けてください。