Java. Алгоритмы поиска в строке: наивный, Кнута-Морриса-Пратта.
Вставка
- Опубліковано 6 лют 2025
- В данном видео разбираем задачу поиска подстроки или поиска строки в тексте. Рассматриваем простейший "наивный" алгоритм и, делая попытки улучшить его, приходим к алгоритму Кнута-Морриса-Пратта. Пишем реализации алгоритмов на языке программирования Java.
Алгоритм Кнута-Морриса-Пратта является эффективным и гарантирует поиск строки за O(n).
#ArhiTutorialsJava #ityoutubersru
Исходники на GitHub:
github.com/Arh...
Общее оглавление по алгоритмам:
github.com/Arh...
Онлайн визуализация работы алгоритма Кнута-Морриса-Пратта:
people.ok.ubc....
Статьи для изучения темы:
habr.com/ru/po...
habr.com/ru/po...
ru.wikipedia.o...
Поддержать канал💰:
yoomoney.ru/to...
Телеграм группа:
t.me/ArhiTutor...
Спасибо за отличную подачу материала. Полезное видео, без словоблудия.
Совсем недавно наткнулся на твой канал, я начинающий программист, подача, материал и в целом - всё очень и очень круто, большое тебе спасибо за твой труд!!!
Запутанный алгоритм, чтоб разобраться, можно посмотреть работу алгоритма по шагам:
people.ok.ubc.ca/ylucet/DS/KnuthMorrisPratt.html
Спасибо огромное, всё очень доступно и ясно!
С новым годом!
Спасибо большое за видео, не очень понял как что работает, но дебаг думаю поможет. За ссылку спасибо!
большое спасибо, очень интересно. пойду пробовать
Оооо новое видео) Спасибо!
Спасибо за видео
Спасибо!
Спасибо за видео! А какую программу вы используете для визуализации? Там где буквы двигаете :)
Вот этот сайт: app.diagrams.net/
Удобная штука, зашел, нарисовал, даже устанавливать ничего не надо)
@@arhitutorials О! Спасибо!
Привет. У меня вопрос. Можно ли в строке: values[i + j] = Math.max(values [i + j], j + 1); оставить вот так : values[i + j] =j + 1; ???? Да , в теории я понимаю что нужно выбрать max в этой ячейке. Но в данном коде у нас не будет выбираться из чего то, поэтому считаю достаточно j + 1 ; и будет тоже само) ведь так?
Лайк если делаешь лабу
цикл for следует ограничить text - sample, что бы не гонять лишние инструкции в цикле while