<?xml version='1.0' encoding="utf-8"?>
      <rss version='2.0'>
      <channel>
      <title>Форум на Исходниках.RU</title>
      <link>https://forum.sources.ru</link>
      <description>Форум на Исходниках.RU</description>
      <generator>Форум на Исходниках.RU</generator>
  	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=9114&amp;view=findpost&amp;p=89567</guid>
        <pubDate>Mon, 13 Oct 2003 21:07:15 +0000</pubDate>
        <title>Алгоритм поиска подстроки в строке</title>
        <link>https://forum.sources.ru/index.php?showtopic=9114&amp;view=findpost&amp;p=89567</link>
        <description><![CDATA[Visitor: Тогда сдаюсь - согласен :)]]></description>
        <author>Visitor</author>
        <category>Алгоритмы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=9114&amp;view=findpost&amp;p=89566</guid>
        <pubDate>Mon, 13 Oct 2003 20:30:55 +0000</pubDate>
        <title>Алгоритм поиска подстроки в строке</title>
        <link>https://forum.sources.ru/index.php?showtopic=9114&amp;view=findpost&amp;p=89566</link>
        <description><![CDATA[lunc: <div class='tag-quote'><span class='tag-quote-prefix'>Цитата</span> <span class='tag-quote__quote-info'>Visitor, 13.10.03, 20:22:23</span><div class='quote '><br>2 lunc: Алгоритм Бойера-Мура примерно так и делает. Только там прописаны сдвиги для <strong class='tag-b'>каждого</strong> символа искомой подстроки</div></div><br><br>Про него я и говорил :)<br>Пример:<br><br>Let us consider the following example &nbsp; &nbsp;(надо найти вхождение Override):<br> &nbsp; &nbsp; &nbsp; &nbsp; Override &nbsp; &nbsp; (совпадают символы ide)<br> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Override &nbsp; (совпадает символ e)<br><br>В начале в текущей позиции находим первый с конца образца символ не соответствующий символу в строке (стоп-символ). Чтобы не пропустить ни одной возможной позиции сдвигаем образец вправо до первого вхождения стопового символа. Повторяем.<br><br>Описан этот алгоритм и еще несколько 9включая на конечных автоматах) в журнале Программист #6 2002 &quot;Алгоритмы: &quot;умный&quot; поиск в тексте&quot;]]></description>
        <author>lunc</author>
        <category>Алгоритмы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=9114&amp;view=findpost&amp;p=89565</guid>
        <pubDate>Mon, 13 Oct 2003 16:22:23 +0000</pubDate>
        <title>Алгоритм поиска подстроки в строке</title>
        <link>https://forum.sources.ru/index.php?showtopic=9114&amp;view=findpost&amp;p=89565</link>
        <description><![CDATA[Visitor: Блин... Ну хоть строгое доказательство приводи :) Ни один алгоритм, не использующий знание о структуре искомой подстроки и просматриваемого текста, <strong class='tag-b'>в среднем</strong> не будет работать быстрее, чем самый очевидный из уже предложенных :)<br><br>2 lunc: Алгоритм Бойера-Мура примерно так и делает. Только там прописаны сдвиги для <strong class='tag-b'>каждого</strong> символа искомой подстроки]]></description>
        <author>Visitor</author>
        <category>Алгоритмы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=9114&amp;view=findpost&amp;p=89564</guid>
        <pubDate>Mon, 13 Oct 2003 11:20:51 +0000</pubDate>
        <title>Алгоритм поиска подстроки в строке</title>
        <link>https://forum.sources.ru/index.php?showtopic=9114&amp;view=findpost&amp;p=89564</link>
        <description><![CDATA[lunc: В журнале &quot;Программист&quot; была статья в свое время на эту тему.<br>Самый эффективный поиск там был начиная с конца текста.<br>Ищешь с конца первое вхождение первого символа подстроки. При повторяющихся символах в подстроке сдвигать можно на разнице между двумя вхождениями этих символов.<br>По-моему так....]]></description>
        <author>lunc</author>
        <category>Алгоритмы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=9114&amp;view=findpost&amp;p=89563</guid>
        <pubDate>Sun, 12 Oct 2003 21:37:04 +0000</pubDate>
        <title>Алгоритм поиска подстроки в строке</title>
        <link>https://forum.sources.ru/index.php?showtopic=9114&amp;view=findpost&amp;p=89563</link>
        <description><![CDATA[Demo_S: редкая - например &quot;Ъ&quot;.<br><br>хеш будет быстрее, так как больше неправильных вариантов будут отсекаться без посимвольного сравнения. тут кстати где то рядом уже была подобная тема.<br><br>кстати простой вариант с первой буквой - этот тот же хеш. просто хеш фукнция от строки - взять первую букву.]]></description>
        <author>Demo_S</author>
        <category>Алгоритмы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=9114&amp;view=findpost&amp;p=89562</guid>
        <pubDate>Sun, 12 Oct 2003 17:07:24 +0000</pubDate>
        <title>Алгоритм поиска подстроки в строке</title>
        <link>https://forum.sources.ru/index.php?showtopic=9114&amp;view=findpost&amp;p=89562</link>
        <description><![CDATA[Ivan_Govnoff: <div class='tag-quote'><span class='tag-quote-prefix'>Цитата</span> <span class='tag-quote__quote-info'>Visitor, 12.10.03, 03:18:46</span><div class='quote '>Что-то мне кажется, что етот, с хеш-функцией, алгоритм (1) будет НЕ быстрее, чем ранее предложенный алгоритм (2) (поиск первой буквы, затем сравнение остальных), в том случае, если  буквы в просматриваемом тексте распределены равномерно... Если же неравномерно, то (1) в среднем будет работать с такой же скоростью, что и (2), но у (2) будут случаи &quot;плохих&quot; и &quot;хороших&quot; искомых подстрок :)<br></div></div><br>Ясен пень, если тебе хватает первого метода, то и не нечего извращаться, просто я предлагаю другой хороший вариант.]]></description>
        <author>Ivan_Govnoff</author>
        <category>Алгоритмы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=9114&amp;view=findpost&amp;p=89561</guid>
        <pubDate>Sun, 12 Oct 2003 08:04:22 +0000</pubDate>
        <title>Алгоритм поиска подстроки в строке</title>
        <link>https://forum.sources.ru/index.php?showtopic=9114&amp;view=findpost&amp;p=89561</link>
        <description><![CDATA[Sl0n: У меня курсовик был на эту тему. Могу намылить.]]></description>
        <author>Sl0n</author>
        <category>Алгоритмы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=9114&amp;view=findpost&amp;p=89560</guid>
        <pubDate>Sat, 11 Oct 2003 23:18:46 +0000</pubDate>
        <title>Алгоритм поиска подстроки в строке</title>
        <link>https://forum.sources.ru/index.php?showtopic=9114&amp;view=findpost&amp;p=89560</link>
        <description><![CDATA[Visitor: Что-то мне кажется, что етот, с хеш-функцией, алгоритм (1) будет НЕ быстрее, чем ранее предложенный алгоритм (2) (поиск первой буквы, затем сравнение остальных), в том случае, если  буквы в просматриваемом тексте распределены равномерно... Если же неравномерно, то (1) в среднем будет работать с такой же скоростью, что и (2), но у (2) будут случаи &quot;плохих&quot; и &quot;хороших&quot; искомых подстрок :)<br><br>Самым быстрым, вроде, считают алгоритм Бойера-Мура, но его еффективность проявляется только при значительной длине искомой подстроки.]]></description>
        <author>Visitor</author>
        <category>Алгоритмы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=9114&amp;view=findpost&amp;p=89559</guid>
        <pubDate>Sat, 11 Oct 2003 22:16:12 +0000</pubDate>
        <title>Алгоритм поиска подстроки в строке</title>
        <link>https://forum.sources.ru/index.php?showtopic=9114&amp;view=findpost&amp;p=89559</link>
        <description><![CDATA[Ivan_Govnoff: Есть такой алгоритм(кажется (с) Кнут):<br><br>1.<br>Считаем хэш-функцию типа H(s) = s[0] + s[1] + ... + s[n-1], где s - подстрока длиной n, которую нужно найти. Вместо + можно взять xor или что-нибудь еще.<br><br>2.<br>Считаем значение хэш-функции для первых n символов строки S в которой ведется поиск.<br><br>3. i = n; <br><br>4.<br>Если H совпадает с H(s), проверяем посимвольным сравнением и делаем выводы, если нет - идем дальше:<br>H = H - S[i-n] + S[i]; i++;<br><br>5. Goto 4<br><br>Т.е. фишка в том, что мы не пересчитываем каждый раз значение хэша заново, а вычисляем его из предыдущего всего за две быстрые операции (само собой, такое возможно только для определенного класса хэш-функций)]]></description>
        <author>Ivan_Govnoff</author>
        <category>Алгоритмы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=9114&amp;view=findpost&amp;p=89558</guid>
        <pubDate>Sat, 11 Oct 2003 21:34:11 +0000</pubDate>
        <title>Алгоритм поиска подстроки в строке</title>
        <link>https://forum.sources.ru/index.php?showtopic=9114&amp;view=findpost&amp;p=89558</link>
        <description><![CDATA[zx1024: Редкую где?<br>В исходной строке. Так сначала потребуется найти её.]]></description>
        <author>zx1024</author>
        <category>Алгоритмы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=9114&amp;view=findpost&amp;p=89557</guid>
        <pubDate>Sat, 11 Oct 2003 20:50:38 +0000</pubDate>
        <title>Алгоритм поиска подстроки в строке</title>
        <link>https://forum.sources.ru/index.php?showtopic=9114&amp;view=findpost&amp;p=89557</link>
        <description><![CDATA[Demo_S (unlogged): Самому написать.<br>идея - обычно ты ищещь первую букву искомой строки в тексте, потом проверяешь<br>совпадают ли остальные буквы. Дык а попробуй искать не первую букву искомой строки<br>а самую редкую. тогда колиество лишних сравнений (если 1 буквы совпала а остальные нет) <br>будет меньше.]]></description>
        <author>Demo_S (unlogged)</author>
        <category>Алгоритмы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=9114&amp;view=findpost&amp;p=89556</guid>
        <pubDate>Sat, 11 Oct 2003 16:52:48 +0000</pubDate>
        <title>Алгоритм поиска подстроки в строке</title>
        <link>https://forum.sources.ru/index.php?showtopic=9114&amp;view=findpost&amp;p=89556</link>
        <description><![CDATA[ХакМак: Народ помогите найти алгоритм для поиска в строке подстроки, обічній дельфиевский Pos() слишком слабый и в больших оюъемах (30МБ) уже ужасно тормозит, может посоветуете чтонибудь другое ? И еще как снять ограничение на размер открываемого файла в дельфи?]]></description>
        <author>ХакМак</author>
        <category>Алгоритмы</category>
      </item>
	
      </channel>
      </rss>
	