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;
		
		}
	}
}