Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 24.04.2009, 16:40   #1
Volchara
Пользователь
 
Аватар для Volchara
 
Регистрация: 25.03.2009
Сообщений: 55
Восклицание Алгоритмы Рабина - Карпа

Задание: написать алгоритм поиска слова в тексте Рабина - Карпа (надеюсь все знают что это такое). Вот. У меня алгоритм получился громоздким. Подскажите плз как его оптимизировать.
Код:
int Rabin_Karp (char *str, char *str2)
{ 
    int sum  = 0;
    int sum2 = 0;
    int i    = 0;
    int k    = 0;
    
    char temp [100000] = {};
    
    for (int i = 0; str2 [i] != 0; i++) 
    {
        assert (0 <= i);
        
        sum += str2 [i];
    }
    
    for (int k = 0; str2 [k] != 0; k++)
    {
        sum2 += str [k];
    }
    
    for (int p = 0; str [p] != 0; p++)
    {
        int l = p;     
        
        for (int t = 0; str2[t] != 0; t++)
        {
            temp [t] = str [l];
            l++;
        }
        
        if (sum = sum2 && strcmp (str2, temp) == 0) {return p;}
        
        else sum2 - str [p] + str [p + i];
    }
    return -1;
}
Буду очень признателен

З.Ы. функция должна возвращать позицию первого элемента найденного слова в тексте (если оно найдено) или -1 (если слово не найденно)
Hа C я могy пpосто делать ошибки, на C++ я могy их наследовать!
Volchara вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Алгоритмы Levhik Общие вопросы Delphi 7 14.01.2009 17:38
алгоритмы кластеризации Incosss Помощь студентам 3 12.01.2009 21:17
Жадные алгоритмы Tony_Bil Паскаль, Turbo Pascal, PascalABC.NET 3 26.02.2008 22:44