Ошибка переполнения стека при поиске файла randomaccess

Поэтому я пишу программу, которая по сути говорит, есть ли слово в словаре. Словарь является файлом randomaccessfile, а индекс, соответствующий словарю, также является файлом randomaccessfile. Оба файла довольно большие.

Я использую рекурсивный бинарный поиск, чтобы проверить, есть ли слово в словаре. Когда я делаю indexFile.lenth()/4 для получения максимальной длины индекса, затем вычисляю середину и делаю indexFile.seek(4*mid), я получаю ошибку переполнения стека и не понимаю, почему

long mid = (max - min)/2;
indexFile.seek(4*mid);
int wordposition = indexFile.readInt();
int nextword = indexFile.readInt();
int wordlength = (nextword - wordposition)/2;
wordsFile.seek(wordposition);
String finalword = "";
for(int i=0; i<wordlength;i++);
{
    finalword = finalword + wordsFile.readChar();
}

if (word.equals(finalword))
{
    return word;
}
else if (finalword.compareTo(word) > 0)
{
     binarysearch(word, min, (mid - 1));
}
else
{
    binarysearch(word, (mid+1), max); 
    System.out.println("yoooo");
}

if (min > max)
{ return "Word not found";}

0 ответов

Другие вопросы по тегам