int comp=0;
int i1=0;
int i2=0;
- int k;
+ int k,j;
while((i1<v1.size()) && (i2<v2.size())){
k = strcmp((const char*) tree->get_text(v1[i1].first),
(const char*) tree->get_text(v2[i2].first));
comp++;
if (k==0)
{
- resultVector.push_back(v1[i1]);
- i1++; //advance left
+ for(j=0; j<v1[i1].second ; j++)
+ resultVector.push_back(v1[i1+j]);
+ i1=i1+j;
+ // i1++; //advance left
}
- else if (k<0) i1++; //advance left
- // else if (k<0) i1=i1+v1[i1].second; //advance left
- else i2++; //advance right
- // else i2=i2+v2[i2].second; //advance right
+ // else if (k<0) i1++; //advance left
+ else if (k<0) i1=i1+v1[i1].second; //advance left
+ // else i2++; //advance right
+ else i2=i2+v2[i2].second; //advance right
}
printf("Number of comparisons during MergeJoin: %i\n",comp);