Спасибо большое! Самое ясное объяснение данного алгоритма)
@romantsarev1145 Жыл бұрын
Пожалуйста!
@ВикторияБондаренко-т6г4 жыл бұрын
Большое спасибо!!! Просто, наглядно и понятно! Ваше видео очень помогло, наконец-то написала нормальный рабочий алгоритм поиска))
@romantsarev11454 жыл бұрын
Пожалуйста! Ставьте лайк, подписывайтесь на канал )
@МаксимГлотов-р8к6 жыл бұрын
Роман, спасибо вам за такое понятное объяснение, благодаря вашим видео я наконец разобрался с такими алг как этот и КМП
@romantsarev11456 жыл бұрын
Пожалуйста.
@Rivrabobra5 жыл бұрын
Вы отлично объясняете. Спасибо!
@romantsarev11455 жыл бұрын
Спасибо за лестную оценку.
@rajahbtw2 жыл бұрын
Спасибо большое, помогло
@romantsarev11452 жыл бұрын
Пожалуйста!
@ТимофейПшеничный3 жыл бұрын
Спасибо! Очень понятно!
@romantsarev11453 жыл бұрын
Пожалуйста!
@veronikabykova54946 жыл бұрын
большое спасибо! теперь все точно уложилось в голове))
@romantsarev11456 жыл бұрын
Пожалуйста.
@veronikabykova54946 жыл бұрын
Можно вопрос, а не нужно удалять пробелы, прежде чем применять алгоритм? То есть возможен вариант, когда сдвиг слова по таблице смещений поставит его так, что последний символ образа будет сравниваться с пробелом - что в таком случае?
@romantsarev11456 жыл бұрын
Прекрасный вопрос! Для ответа на него рассмотрим программную реализацию. При формировании массива d я использовал таблицу ASCII (11:50). Если взглянуть на нее, то можно увидеть, что пробел имеет код 32. То есть для ЭВМ пробел - это такой же символ как и любая буква, цифра, знак препинания (которые, естественно, имеют свои коды). Так что пробелы предварительно удалять не нужно. Более того, образ может быть не отдельным словом, а фразой и, конечно, будет содержать пробелы, которые тоже удалять не нужно.
@АлёнаКоломийцева-п2о3 жыл бұрын
Суупер! Спасибо😊 очень понятно и наглядно)
@romantsarev11457 ай бұрын
Пожалуйста
@БахтиярТутенов-щ8ц7 жыл бұрын
Крутое видео! А то читаешь и ничего не понимаешь))
@RedPixel-j1e4 жыл бұрын
Супер! Спасибо!
@romantsarev11454 жыл бұрын
Пожалуйста!
@Federation13233 жыл бұрын
выглядит как какая-то магия)))
@romantsarev1145 Жыл бұрын
Это она и есть
@nicivanov51353 жыл бұрын
Подскажите, алгоритм sha 256 тоже на сдвиге работает или другие алгоритмы использует? Нужно понять сам принцып работы hashlib.
На сколько нужно сдвигать индекс при нахождении элемента, если нужно найти несколько вхождений?
@romantsarev11453 жыл бұрын
Все зависит от Вашей постановки задачи. Если Вы считаете, что в строку "аааа" образ "аа" входит три раза, тогда на один символ. А, если входит два раза, тогда начинайте с символа, который стоит сразу за совпавшей частью строки и образа. В целом, алгоритм ищет первое совпадение образа и строки, остальное на усмотрение программиста.
@yuriysosnovskiy21183 жыл бұрын
@@romantsarev1145 я увеличивал индекс і (тот, который идёт по строке) на значение из таблицы сдвигов последнего совпавшего символа. Вроде работает нормально.
@zedoo56996 жыл бұрын
Спасибо, но кое что очень странно. В первом примере ты считаешь смещение относительно символов с строке, а во втором примере относительно образа
@romantsarev11456 жыл бұрын
Если при сравнении последнего символа образа и символа строки произошло несовпадение, то определяем сдвиг по символу строки (6:59); если же несовпадение произошло после того, как совпал ряд символов строки и образа, то сдвиг будет равен d, соответствующий последнему символу образа (9:17).
@zedoo56996 жыл бұрын
Roman Tsarev сэнкс
@zedoo56996 жыл бұрын
Roman Tsarev не знаю, почему то прозевал момент, когда вы рассказали об этом в видео
@qvv3r7y776 жыл бұрын
Не совсем ясно зачем делить алгоритм на два случая. Вы говорите, что во втором случае нужно смотреть на последний символ образа, но ведь у нас было совпадение, т.е этот символ равен последнему символу строки. И выходит, что в любом случае мы сдвигаемся на d = последнему символу строки. Поправьте, если где-то ошибаюсь
@par93252 жыл бұрын
@@romantsarev1145 вот оно как. спасибо за уточнение
@АлександрШеремет-я7е Жыл бұрын
Если несовпадающий символ не самый правый/последний в образе то 1. У вас: смещение берём по последнему символк образа 2. Вот тут kzbin.info/www/bejne/oae6d3SQrL-Sbrc : по несовпадающему символу образа 3. А вот тут kzbin.info/www/bejne/hGeqZ3uMrK9nrbM : по несовпадающему символу СТРОКИ Почему такие разночтения ?
@romantsarev1145 Жыл бұрын
Я от оригинальной статьи авторов алгоритма отталкивался. Про авторов других видео не скажу.
@АлександрШеремет-я7е Жыл бұрын
@@romantsarev1145 можете ссылку дать ?
@СергейСвердлов-у4в4 жыл бұрын
Все сдвиги надо увеличить на 1. И выбирать сдвиг по следующему за концом образца символу строки.
@romantsarev11454 жыл бұрын
Почему?
@СергейСвердлов-у4в4 жыл бұрын
Потому что сдвиги будут больше и не надо будет мудрить с последним символом образца.
@romantsarev11454 жыл бұрын
При больших сдвигах важно мимо вхождения образа не проскочить. Не случится ли такого?
@СергейСвердлов-у4в4 жыл бұрын
@@romantsarev1145 Не случится
@romantsarev11454 жыл бұрын
@@СергейСвердлов-у4в Супер, если так!
@valera160119905 жыл бұрын
Непонятно зачем в примере с метадата выносить как отдельный случай, можно обобщить, в случае несовпададеня образца и подстроки, смещение по самому правому элементу подсторки Аналогично с последний буквой образца, достаточно сказать что при создании таблицы сдвигов это последний элемент(несчитая "прочие") для которого мы создаем А так спасибо)
@romantsarev11455 жыл бұрын
Для наглядности. Пожалуйста.
@milhot2 жыл бұрын
автор живёт рядом с жд (просто факт)
@romantsarev11452 жыл бұрын
😂
@sominite4 жыл бұрын
9:08 фотошоп
@romantsarev11454 жыл бұрын
В каком смысле? А так, все сделано в Power Point
@sominite4 жыл бұрын
@@romantsarev1145 ошибся
@alexanderginger7543 жыл бұрын
Ору, в случае когда нет ряда совпадений, сдвигаем по последнему символу строки, а если есть ряд совпадений, то сдвигаем по последнему символу образа, который РАВЕН последнему символу строки 👍👍👍 А можно хотя бы разобраться в алгоритме прежде чем записывать видео?))))
@romantsarev11453 жыл бұрын
Не ори, все там правильно. Давай временную метку, поясню, что там у тебя не сходится.
@romantsarev11453 жыл бұрын
Не стал дожидаться ответа, раз у тебя возник такой вопрос, возможно и у других он появится. Первый случай 6:58 При несовпадении символ в строке «н», символ в образе «е» сдвиг определяем по символу строки «н». Второй случай 9:23 При несовпадении символ в строке «е», символ в образе «а» сдвиг определяем по последнему символу образа «а». В твоем комментарии-вопросе два существенных косяка: «Ору, в случае когда нет ряда совпадений, сдвигаем по последнему символу строки…». Не по ПОСЛЕДНЕМУ символу строки, а по ТЕКУЩЕМУ символу строки; «…, а если есть ряд совпадений, то сдвигаем по последнему символу образа, который РАВЕН последнему символу строки». Да, сдвигаем по последнему символу образа, он точно НЕ РАВЕН текущему символу строки, а равен он ПОСЛЕДНЕМУ символу строки или нет, нас не интересует. Нас вообще никогда не интересует ПОСЛЕДНИЙ символ строки. На последней итерации у него есть шанс стать текущим, но и тогда нам все равно последний он или нет, рассматриваем его так же, как рассматривали остальные символы строки до этого. Как ты вообще видео смотрел?!
@OneOfWun-n2g3 жыл бұрын
@@romantsarev1145 у него аниме на аватарке, все нормально