0
擴展二進制搜索邏輯,用於在排序的矢量的搜索進制,我試圖所述代碼與n-1個值below.Comparing並選擇相應的左和right.I已經做當矢量的大小小於n時的線性搜索。我如何使用並行化?排序後的數組上進制搜索使用OpenMP
int nary_search(vector<int> a,int key,int ary){
int l=0,r=a.size()-1;
while((r-l)>ary-1){
//cout<<"left is "<<l<<" right is "<<r<<endl;
int step=(r-l+1)/ary;
int var=l+step;
for(;var<=r;var+=step){
if(key<=a[var])
{
r=var;
l=var-step;
break;
}
else{
l=var;
}
}
}
//cout<<"left is "<<l<<"right is "<<r<<endl;
for(int i=l;i<=r;i++){
if(a[i]==key)
return i;
}
return -1;
}
此外,break語句不適用於openmp,所以我試圖將其更改爲此。
if(l<=key && key<=a[var])
{
r=var;
l=var-step;
}
else{
l=var+1;
}
這是我第一次太問題。 – 2015-04-02 14:29:34
您之前是否使用OpenMP進行過一些簡單循環? – 2015-04-02 15:39:36
是OMP的#pragma爲平行,但我不能使用這個直接在這裏我得到不正確的結果。 – 2015-04-02 16:43:36