<?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=40331&amp;view=findpost&amp;p=3770748</guid>
        <pubDate>Thu, 31 May 2018 07:36:21 +0000</pubDate>
        <title>Быстрая сортировка</title>
        <link>https://forum.sources.ru/index.php?showtopic=40331&amp;view=findpost&amp;p=3770748</link>
        <description><![CDATA[FateFlex: А есть версия алгоритма быстрой сортировки где в качестве индексов массива используются без знаковые (byte, word, cardinal) переменные?]]></description>
        <author>FateFlex</author>
        <category>Алгоритмы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=40331&amp;view=findpost&amp;p=579427</guid>
        <pubDate>Sun, 16 Jan 2005 19:02:07 +0000</pubDate>
        <title>Быстрая сортировка</title>
        <link>https://forum.sources.ru/index.php?showtopic=40331&amp;view=findpost&amp;p=579427</link>
        <description><![CDATA[borisvolfson: Тут уже ссылку кинули на генератор квадратичных тестов для qsort, чтобы qsort работала достаточно быстро проще всего выбирать медиану для разбиения произвыольным образом, то есть рандомный элемент, тогда шанс, что qsort будет работать за квадратичное время будет ничтожно мал. Если надо еще увеличить скорость, то можно не сортировать массивы длиной менее C (С - некоторая константа). В итоге получим &quot;почти сортированный&quot; массив, который можнно отсортировать примитивным алгоритмом, который быстро сортирует &quot;почти отсортированные&quot; массивы. Выигрыш насколько я помню около 15%.]]></description>
        <author>borisvolfson</author>
        <category>Алгоритмы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=40331&amp;view=findpost&amp;p=578800</guid>
        <pubDate>Sun, 16 Jan 2005 06:39:21 +0000</pubDate>
        <title>Быстрая сортировка</title>
        <link>https://forum.sources.ru/index.php?showtopic=40331&amp;view=findpost&amp;p=578800</link>
        <description><![CDATA[mo3r: Самый плохой тест (получено эмпирически) - если множество элементов массива состоит их 2 элементов - 0 и 1 или только их одного элемента. По поводу порядка их размещения я не знаю. Еще раз повторю, что это получено эмпирически.]]></description>
        <author>mo3r</author>
        <category>Алгоритмы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=40331&amp;view=findpost&amp;p=578794</guid>
        <pubDate>Sun, 16 Jan 2005 06:15:13 +0000</pubDate>
        <title>Быстрая сортировка</title>
        <link>https://forum.sources.ru/index.php?showtopic=40331&amp;view=findpost&amp;p=578794</link>
        <description><![CDATA[esperanto: Алгоритм - берем массив, выбираем случайный элемент массива X. Расбрасываем числа так, чтобы слева от медианы были числа меньше X, а справа - больше X. Сортируем отдельно левую и правые части (рекурсивно тем же самым алгоритмом)]]></description>
        <author>esperanto</author>
        <category>Алгоритмы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=40331&amp;view=findpost&amp;p=578481</guid>
        <pubDate>Sat, 15 Jan 2005 20:07:52 +0000</pubDate>
        <title>Быстрая сортировка</title>
        <link>https://forum.sources.ru/index.php?showtopic=40331&amp;view=findpost&amp;p=578481</link>
        <description><![CDATA[tserega: Код - <a class='tag-url' href='http://forum.sources.ru/index.php?showtopic=40331&view=findpost&p=261491' target='_blank'>Быстрая сортировка (сообщение #261491)</a><br>
Алгоритм - берем массив, выбираем медиану X. Расбрасываем числа так, чтобы слева от медианы  были числа меньше X, а справа - больше X. Сортируем отдельно левую и правые части (рекурсивно тем же самым алгоритмом)]]></description>
        <author>tserega</author>
        <category>Алгоритмы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=40331&amp;view=findpost&amp;p=578292</guid>
        <pubDate>Sat, 15 Jan 2005 17:31:55 +0000</pubDate>
        <title>Быстрая сортировка</title>
        <link>https://forum.sources.ru/index.php?showtopic=40331&amp;view=findpost&amp;p=578292</link>
        <description><![CDATA[Маша: :lol:  Помогите&#33;&#33;&#33;&#33; Кто знает алгоритм БЫСТРОЙ СОРТИРОВКИ???????]]></description>
        <author>Маша</author>
        <category>Алгоритмы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=40331&amp;view=findpost&amp;p=261590</guid>
        <pubDate>Thu, 11 Dec 2003 13:46:51 +0000</pubDate>
        <title>Быстрая сортировка</title>
        <link>https://forum.sources.ru/index.php?showtopic=40331&amp;view=findpost&amp;p=261590</link>
        <description><![CDATA[tserega:  <!--QuoteBegin--></div><table border='0' align='center' width='95%' cellpadding='3' cellspacing='1'><tr><td><b>Цитата</b> </td></tr><tr><td id='QUOTE'><!--QuoteEBegin-->Да не обязательно в обратном... Просто в некоторых реализациях быстрой сортировки медиана (тот елемент, справа от которого и слева от которого...) выбирается случайным образом. <!--QuoteEnd--></td></tr></table><div class='postcolor'><!--QuoteEEnd--><br>От выбора медианы зависит только пример плохого теста. Какую бы мы медиану не выбрали бы, <b>всегда</b> можно будет получить сложность N^2.<br>Часто медиану считают так: med:=(a[l] + a[r] + a[(l+r) div 2]) div 3; ]]></description>
        <author>tserega</author>
        <category>Алгоритмы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=40331&amp;view=findpost&amp;p=261585</guid>
        <pubDate>Thu, 11 Dec 2003 13:43:20 +0000</pubDate>
        <title>Быстрая сортировка</title>
        <link>https://forum.sources.ru/index.php?showtopic=40331&amp;view=findpost&amp;p=261585</link>
        <description><![CDATA[Visitor:  Брр... А как медиана-то выбирается тогда, если не пополам? ]]></description>
        <author>Visitor</author>
        <category>Алгоритмы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=40331&amp;view=findpost&amp;p=261582</guid>
        <pubDate>Thu, 11 Dec 2003 13:42:24 +0000</pubDate>
        <title>Быстрая сортировка</title>
        <link>https://forum.sources.ru/index.php?showtopic=40331&amp;view=findpost&amp;p=261582</link>
        <description><![CDATA[wormball:  ну ето будет имхо глупость, так ещё более замедлится. можно делить не первым, а средним элементом. а есь ещё помнится двухсторонняя быстрая сортировка. ]]></description>
        <author>wormball</author>
        <category>Алгоритмы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=40331&amp;view=findpost&amp;p=261580</guid>
        <pubDate>Thu, 11 Dec 2003 13:39:36 +0000</pubDate>
        <title>Быстрая сортировка</title>
        <link>https://forum.sources.ru/index.php?showtopic=40331&amp;view=findpost&amp;p=261580</link>
        <description><![CDATA[tserega:  Да, можно в процедуру сортировки вставлять проверку &quot;а не отсортирован ли уже массив?&quot;, и тогда некоторые часные случаи будут обрабатываться сами собой. Обычно для алгоритмов сортировки условие конца работы несколько проще. ]]></description>
        <author>tserega</author>
        <category>Алгоритмы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=40331&amp;view=findpost&amp;p=261574</guid>
        <pubDate>Thu, 11 Dec 2003 13:35:02 +0000</pubDate>
        <title>Быстрая сортировка</title>
        <link>https://forum.sources.ru/index.php?showtopic=40331&amp;view=findpost&amp;p=261574</link>
        <description><![CDATA[wormball:  в томто и дело, что так он будет делиться не пополам, а будет делиться на часть нулевого размера и часть, где будет почти весь массив. а потому она претерпит n самовызовов, и сложность будет n^2. <!--emo&B)--><img src='http://forum.sources.ru/html/emoticons/cool.gif' border='0' style='vertical-align:middle' alt='cool.gif' /><!--endemo-->  ]]></description>
        <author>wormball</author>
        <category>Алгоритмы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=40331&amp;view=findpost&amp;p=261566</guid>
        <pubDate>Thu, 11 Dec 2003 13:19:39 +0000</pubDate>
        <title>Быстрая сортировка</title>
        <link>https://forum.sources.ru/index.php?showtopic=40331&amp;view=findpost&amp;p=261566</link>
        <description><![CDATA[Visitor:  Дык массив так и будет делиться пополам на каждой итерации... ]]></description>
        <author>Visitor</author>
        <category>Алгоритмы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=40331&amp;view=findpost&amp;p=261562</guid>
        <pubDate>Thu, 11 Dec 2003 13:15:59 +0000</pubDate>
        <title>Быстрая сортировка</title>
        <link>https://forum.sources.ru/index.php?showtopic=40331&amp;view=findpost&amp;p=261562</link>
        <description><![CDATA[wormball:  <!--QuoteBegin--></div><table border='0' align='center' width='95%' cellpadding='3' cellspacing='1'><tr><td><b>Цитата</b> </td></tr><tr><td id='QUOTE'><!--QuoteEBegin--><b>Visitor</b>, 11.12.03, 16:07<br>Не, тогда сложность логарифмической останется.... <!--QuoteEnd--></td></tr></table><div class='postcolor'><!--QuoteEEnd--><br>почему?? ]]></description>
        <author>wormball</author>
        <category>Алгоритмы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=40331&amp;view=findpost&amp;p=261558</guid>
        <pubDate>Thu, 11 Dec 2003 13:11:34 +0000</pubDate>
        <title>Быстрая сортировка</title>
        <link>https://forum.sources.ru/index.php?showtopic=40331&amp;view=findpost&amp;p=261558</link>
        <description><![CDATA[tserega:  Ура&#33; Нашел генерилку&#33; Кому интересно, <a href='http://www.cs.dartmouth.edu/~doug/aqsort.c' target='_blank'>сюда&#33;</a> ]]></description>
        <author>tserega</author>
        <category>Алгоритмы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=40331&amp;view=findpost&amp;p=261555</guid>
        <pubDate>Thu, 11 Dec 2003 13:07:46 +0000</pubDate>
        <title>Быстрая сортировка</title>
        <link>https://forum.sources.ru/index.php?showtopic=40331&amp;view=findpost&amp;p=261555</link>
        <description><![CDATA[Visitor:  Не, тогда сложность логарифмической останется.... ]]></description>
        <author>Visitor</author>
        <category>Алгоритмы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=40331&amp;view=findpost&amp;p=261527</guid>
        <pubDate>Thu, 11 Dec 2003 12:38:47 +0000</pubDate>
        <title>Быстрая сортировка</title>
        <link>https://forum.sources.ru/index.php?showtopic=40331&amp;view=findpost&amp;p=261527</link>
        <description><![CDATA[wormball:  <!--QuoteBegin--></div><table border='0' align='center' width='95%' cellpadding='3' cellspacing='1'><tr><td><b>Цитата</b> </td></tr><tr><td id='QUOTE'><!--QuoteEBegin--><b>Visitor</b>, 11.12.03, 15:22<br>математический объект, который фсе привыкли называть &quot;демон&quot;<!--QuoteEnd--></td></tr></table><div class='postcolor'><!--QuoteEEnd--><br>ты ещё скажи шайтан <!--emo&:)--><img src='http://forum.sources.ru/html/emoticons/smile.gif' border='0' style='vertical-align:middle' alt='smile.gif' /><!--endemo--> <br>тогда наоборот: чтобы они уже были в правильном порядке рассортированы. тоесь она поймёт, что все последующие числа больше первого, и честно вызовет саму себя с массивом, меньшим на один элемент. кстати если они в обратном порядке, так тоже произойдёт. <!--emo&:)--><img src='http://forum.sources.ru/html/emoticons/smile.gif' border='0' style='vertical-align:middle' alt='smile.gif' /><!--endemo-->  ]]></description>
        <author>wormball</author>
        <category>Алгоритмы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=40331&amp;view=findpost&amp;p=261512</guid>
        <pubDate>Thu, 11 Dec 2003 12:22:30 +0000</pubDate>
        <title>Быстрая сортировка</title>
        <link>https://forum.sources.ru/index.php?showtopic=40331&amp;view=findpost&amp;p=261512</link>
        <description><![CDATA[Visitor:  Да не обязательно в обратном... Просто в некоторых реализациях быстрой сортировки медиана (тот елемент, справа от которого и слева от которого...) выбирается случайным образом. Поетому генератором &quot;плохих&quot; входных последовательностей, на самом деле является математический объект, который фсе привыкли называть &quot;демон&quot;. Ен точно знает, какая последовательность будет самой плохой. И неважно откуда, лишь бы выполнялось условие существования етой самой плохой последовательности. <!--emo&:)--><img src='http://forum.sources.ru/html/emoticons/smile.gif' border='0' style='vertical-align:middle' alt='smile.gif' /><!--endemo--><br><br>Если медиана выбирается каким-то определенным образом, надо разместить елементы массива так, чтобы ета самая медиана не делила массив на части. (т.е., всегда оказывалась минимальным или максимальным елементом сортируемой подпоследовательности). ]]></description>
        <author>Visitor</author>
        <category>Алгоритмы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=40331&amp;view=findpost&amp;p=261511</guid>
        <pubDate>Thu, 11 Dec 2003 12:21:43 +0000</pubDate>
        <title>Быстрая сортировка</title>
        <link>https://forum.sources.ru/index.php?showtopic=40331&amp;view=findpost&amp;p=261511</link>
        <description><![CDATA[tserega:  Тогда quicksort из раскидает за один проход&#33; <!--emo&:D--><img src='http://forum.sources.ru/html/emoticons/biggrin.gif' border='0' style='vertical-align:middle' alt='biggrin.gif' /><!--endemo-->  <!--emo&:D--><img src='http://forum.sources.ru/html/emoticons/biggrin.gif' border='0' style='vertical-align:middle' alt='biggrin.gif' /><!--endemo-->  <!--emo&:D--><img src='http://forum.sources.ru/html/emoticons/biggrin.gif' border='0' style='vertical-align:middle' alt='biggrin.gif' /><!--endemo--> <br>Т.е. более N сравнений, IMHO, не будет. ]]></description>
        <author>tserega</author>
        <category>Алгоритмы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=40331&amp;view=findpost&amp;p=261508</guid>
        <pubDate>Thu, 11 Dec 2003 12:17:40 +0000</pubDate>
        <title>Быстрая сортировка</title>
        <link>https://forum.sources.ru/index.php?showtopic=40331&amp;view=findpost&amp;p=261508</link>
        <description><![CDATA[wormball:  ну тогда я думаю ето просто числа, расположенные в обратном порядке. ]]></description>
        <author>wormball</author>
        <category>Алгоритмы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=40331&amp;view=findpost&amp;p=261503</guid>
        <pubDate>Thu, 11 Dec 2003 12:10:43 +0000</pubDate>
        <title>Быстрая сортировка</title>
        <link>https://forum.sources.ru/index.php?showtopic=40331&amp;view=findpost&amp;p=261503</link>
        <description><![CDATA[tserega:  А причем здесь мама и папа?<br><br>PS: тема уходит в offtopic... ]]></description>
        <author>tserega</author>
        <category>Алгоритмы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=40331&amp;view=findpost&amp;p=261491</guid>
        <pubDate>Thu, 11 Dec 2003 11:59:20 +0000</pubDate>
        <title>Быстрая сортировка</title>
        <link>https://forum.sources.ru/index.php?showtopic=40331&amp;view=findpost&amp;p=261491</link>
        <description><![CDATA[tserega:  2 wormball<br>В быстрой сортировке массив разделяется на 2 части: элементы, меньшие заданного ключа - в одну, а большие - в другую. Потом эти части сортируются отдельно и склеиваются вместе. Фишка в том, что может получиться так, что на каждом шаге массив из N элементов будет делиться на 2 подмассива: из 1 элемента и из (N - 1) элемента. Так понадобится O(N) сортировок, что дает суммарное время O(N^2).<br>O(N*logN) - это когда массив всегда делится на 2 примерно равные по размеру части.<br><br>2 Lucifer:<br>Это серьезно, или тонкий юмор?&#33;<br><br>Вот, например, какой самый &quot;плохой&quot; тест для quicksort-а из Паскаля?<br><!--c1--></div><table border='0' align='center' width='95%' cellpadding='3' cellspacing='1'><tr><td><b></b> </td></tr><tr><td id='CODE'><!--ec1--><br>procedure quicksort&#40;var a&#58; list; Lo,Hi&#58; integer&#41;;<br><br>procedure sort&#40;l,r&#58; integer&#41;;<br>var<br> &nbsp;i,j,x,y&#58; integer;<br>begin<br> &nbsp;i&#58;=l; j&#58;=r; x&#58;=a&#91;&#40;l+r&#41; DIV 2&#93;;<br> &nbsp;repeat<br> &nbsp; &nbsp;while a&#91;i&#93;&#60;x do i&#58;=i+1;<br> &nbsp; &nbsp;while x&#60;a&#91;j&#93; do j&#58;=j-1;<br> &nbsp; &nbsp;if i&#60;=j then<br> &nbsp; &nbsp;begin<br> &nbsp; &nbsp; &nbsp;y&#58;=a&#91;i&#93;; a&#91;i&#93;&#58;=a&#91;j&#93;; a&#91;j&#93;&#58;=y;<br> &nbsp; &nbsp; &nbsp;i&#58;=i+1; j&#58;=j-1;<br> &nbsp; &nbsp;end;<br> &nbsp;until i&#62;j;<br> &nbsp;if l&#60;j then sort&#40;l,j&#41;;<br> &nbsp;if i&#60;r then sort&#40;i,r&#41;;<br>end;<!--c2--></td></tr></table><div class='postcolor'><!--ec2--> ]]></description>
        <author>tserega</author>
        <category>Алгоритмы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=40331&amp;view=findpost&amp;p=261479</guid>
        <pubDate>Thu, 11 Dec 2003 11:43:44 +0000</pubDate>
        <title>Быстрая сортировка</title>
        <link>https://forum.sources.ru/index.php?showtopic=40331&amp;view=findpost&amp;p=261479</link>
        <description><![CDATA[wormball:  помоему ето ересь&#33;&#33; у быстрой сортировки не может быть больше чем O(N*logN)&#33; наверное ето ещё у какоголибо метода ]]></description>
        <author>wormball</author>
        <category>Алгоритмы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=40331&amp;view=findpost&amp;p=261469</guid>
        <pubDate>Thu, 11 Dec 2003 11:34:28 +0000</pubDate>
        <title>Быстрая сортировка</title>
        <link>https://forum.sources.ru/index.php?showtopic=40331&amp;view=findpost&amp;p=261469</link>
        <description><![CDATA[tserega:  Известно, что у &quot;быстрой&quot; сортировки (QuickSort) <b>среднее</b> число сравнений пропорционально O(N*logN). Хотя с дополнением, что для некоторых случаев оно стремится к O(N^2).  Но нигде не сказано, как получить такой пример&#33;  <!--emo&:angry:--><img src='http://forum.sources.ru/html/emoticons/mad.gif' border='0' style='vertical-align:middle' alt='mad.gif' /><!--endemo--> <br>Мой вопрос сводится к тому, как работают генераторы &quot;плохих&quot; тестов для сортировок. Можно ли написать программу, которая для некоторго метода сортировки с сложностью O(N*logN) выдает пример входных данных, при которых сложность становится O(N^2)? ]]></description>
        <author>tserega</author>
        <category>Алгоритмы</category>
      </item>
	
      </channel>
      </rss>
	