关于开放式管理计划的Quick问题:
我不敢肯定,如何在使用开放的议员的同时实行双管齐下的做法。 如同当时一样,有两处在更大范围内居住。 使用这种假体算法是“双重结束选择”。
void project::parallelDeSelectionSort()
{
//Printarr(arr,size);
int comparisons = 0;
int j = 0;
int k = 0;
#pragma omp parallel for private (j, k)
for(int i = 0; i < arrSize; i++)
{
int min = i;
int max = ((arrSize-1) - i);
int maxtemp = max;
int mintemp = min;
for(j = min; j < arrSize; j++)
{
if(data[min] > data[j])
{
min = j;
}
comparisons++;
//Printarr(data,arrSize);
}//end for
for(k = max; k > 0; k--)
{
if(data[max] < data[k])
{
max = k;
}
comparisons++;
//Printarr(data,arrSize);
}//end for
if(min > mintemp)
{
swap(data[min], data[mintemp]);
}
comparisons++;
if(max < maxtemp)
{
swap(data[max], data[maxtemp]);
}
comparisons++;
//Printarr(data,arrSize);
}//end outer for
//cout<<GetCounter()<<endl;
cout<<"number of comparisons in parallel DE selection sort: "<< comparisons<<endl;
}
许多人感谢所有回答的人。