here is the code. I get a segmentation fault every time run.
Code:
//Mergesort
void mergesort(vector<string>& word_vector, int start, int stop)
{
int mid;
if (start < stop)
{
mid=(start+stop/2);
mergesort(word_vector, start, mid);
mergesort(word_vector, mid+1, stop);
merge(word_vector, start, mid, stop);
}
}
void merge(vector<string>& word_vector, int start,int mid, int stop)
{
int i,j,k,na,nb;
cout << start<< " " << mid << " "<< stop << endl;
vector<string> vector_L;
vector<string> vector_R;
na = mid-start +1;
nb = stop - mid;
for (i = 1; i <= na; i++)
{
vector_L.push_back(word_vector[start+i-1]);
}
for (i = 1; i <= nb; i++)
{
vector_R.push_back(word_vector[mid+1]);
}
i = 1;
j= 1;
cout <<"Left Size is " << vector_L.size() << " Right Size is " << vector_R.size() << endl;
for (k=start; k <= stop; k++)
{ cout <<"i is "<< i << " j is " << j <<" k is " << k << endl;
if (strcmp(vector_L[i].c_str(),vector_R[j].c_str()) < 0)
{
word_vector[k] = vector_L[i];
i = i + 1;
}
else
{
word_vector[k] = vector_R[j];
j = j + 1;
}
}
}