Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java: Общие вопросы > Сравнения алгоритмов поиска слов в тексте


Автор: Vasi 11.12.2012, 16:09
Необходимо реализовать программу для поиска слов в тексте.Нужно сравнить время выполнения алгоритма Кнута-Морисса-Прата,простой алгоритм,где сравнения идут посимвольно и стандартный алгоритм поиска.
нашел ошибку в своем методе посимвольного сравнения.Ошибка заключается в том что он сравнивает первый символ шаблона со строкой текста и затем начинает накапливать.Другими словами:
Если я ввожу текст
Код
lll llo

А шаблон задаю так:
Код
llo

То этот метод помимо правильного вхождения также будет считать еще вхождения символов l.
Код
public int[] FindPattern(){
        int k;
        int z=0;
        //int [] matches = new int[text.length];
        for(int i=0;i<text.length;i++){
            k=0;
            if(text[i]==pattern[0]){
                int j=i;
           
                while(text[j] == pattern[k])
                    if (k<pattern.length)
                    {
                           matches[z]=j;
                           z++;
                     break;
                    }
                    temp[k] = text[j];
                    j++;k++;
                }
                 if((pattern.toString().compareTo(temp.toString()))!=0) {
                    count++;
                }
            }
        
        return Arrays.copyOfRange(matches, 0, z);
}

Никак не пойму как это можно исправить 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)