<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Два студента пишут лабы &#187; сортировки</title>
	<atom:link href="http://www.studcode.ru/archiv/tag/sort/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.studcode.ru</link>
	<description>Конспекты лекций, самостоятельные работы по  delphi, с++, php. Курсовые проекты. Все что мы сделали вы можете скачать без проблем!</description>
	<lastBuildDate>Wed, 27 Oct 2010 15:15:19 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Быстрая сортировка Хоара</title>
		<link>http://www.studcode.ru/archiv/bystraya-sortirovka-xoara-2/</link>
		<comments>http://www.studcode.ru/archiv/bystraya-sortirovka-xoara-2/#comments</comments>
		<pubDate>Wed, 20 Jan 2010 18:40:48 +0000</pubDate>
		<dc:creator>sleepes</dc:creator>
				<category><![CDATA[Delphi]]></category>
		<category><![CDATA[Лабораторные работы]]></category>
		<category><![CDATA[лабы]]></category>
		<category><![CDATA[сортировки]]></category>

		<guid isPermaLink="false">http://www.studcode.ru/?p=972</guid>
		<description><![CDATA[Задание: реализовать алгоритм быстрой сортировки Хоара на Delphi.


unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm1 = class(TForm)
    Label1: TLabel;
    Label2: TLabel;
    Button1: TButton;
    Button2: TButton;
    procedure FormCreate(Sender: TObject);
    procedure [...]]]></description>
			<content:encoded><![CDATA[<p><em>Задание</em>: реализовать алгоритм <a href="http://www.studcode.ru/archiv/bystraya-sortirovka-xoara/">быстрой сортировки Хоара</a> на Delphi.</p>
<p><span id="more-972"></span></p>
<pre><code>
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm1 = class(TForm)
    Label1: TLabel;
    Label2: TLabel;
    Button1: TButton;
    Button2: TButton;
    procedure FormCreate(Sender: TObject);
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;
  const N=40;
var
  Form1: TForm1;
  mas: array[1..N] of integer;
implementation

{$R *.dfm}
procedure sort(l, r: integer);
var
  i,j,temp: integer;
  left: boolean;
begin
left:=true;
if (r-l)>=1 then
begin
 i:=l;
 j:=r;

 while i<>j do
   begin
    if left=true then begin
      if mas[i]<=mas[j] then
        begin
         j:=j-1;
        end
      else
        begin
         temp:=mas[i];
         mas[i]:=mas[j];
         mas[j]:=temp;
         inc(i);
         left:=false;
        end;
      end
      else
      begin
      if mas[i]<=mas[j] then
        begin
         inc(i);
        end
      else
        begin
         temp:=mas[i];
         mas[i]:=mas[j];
         mas[j]:=temp;
         j:=j-1;
         left:=true;
        end;
        end;
   end;
sort(l, i-1);
sort(j+1, r);
end;
end;

procedure TForm1.FormCreate(Sender: TObject);
var
  i: integer;
begin
randomize;
Label1.Caption:='';
for i:=1 to N do
  begin
   mas[i]:=random(100);
   Label1.Caption:=Label1.Caption+'  '+IntToStr(mas[i]);
  end;
end;

procedure TForm1.Button1Click(Sender: TObject);
var
  i: integer;
begin
Label2.Caption:='';

sort(1,N);
for i:=1 to N do
  Label2.Caption:=Label2.Caption+'  '+IntToStr(mas[i]);
end;

end.

</code></pre>
]]></content:encoded>
			<wfw:commentRss>http://www.studcode.ru/archiv/bystraya-sortirovka-xoara-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Сортировка. Метод погружения.</title>
		<link>http://www.studcode.ru/archiv/sortirovka-metod-pogruzheniya/</link>
		<comments>http://www.studcode.ru/archiv/sortirovka-metod-pogruzheniya/#comments</comments>
		<pubDate>Sun, 17 Jan 2010 17:21:14 +0000</pubDate>
		<dc:creator>sleepes</dc:creator>
				<category><![CDATA[C]]></category>
		<category><![CDATA[Дополнительные разделы программировани]]></category>
		<category><![CDATA[Лабораторные работы]]></category>
		<category><![CDATA[лабы]]></category>
		<category><![CDATA[лекции]]></category>
		<category><![CDATA[сортировки]]></category>

		<guid isPermaLink="false">http://www.studcode.ru/?p=965</guid>
		<description><![CDATA[Метод основан на сравнении последнего элемента со всеми.
Алгоритм:

понадобится два массива:  исходный(неупорядоченный) и выходной(пустой)
берем первый элемент исходного массива и помещаем в конец выходного
в цикле сравниваем добавленый элемент со всеми, пока он не станет на свое место
повторяем пункт 3 пока в исходном массиве не закончатся элементы



  #include 
  #include


  void add(int *mas[20], int n)
 [...]]]></description>
			<content:encoded><![CDATA[<p>Метод основан на сравнении последнего элемента со всеми.</p>
<p><em>Алгоритм:</em></p>
<ol>
<li>понадобится два массива:  исходный(неупорядоченный) и выходной(пустой)</li>
<li>берем первый элемент исходного массива и помещаем в конец выходного</li>
<li>в цикле сравниваем добавленый элемент со всеми, пока он не станет на свое место</li>
<li>повторяем пункт 3 пока в исходном массиве не закончатся элементы</li>
</ol>
<p><span id="more-965"></span></p>
<pre><code>
  #include <iostream.h>
  #include
<math.h>

  void add(int *mas[20], int n)
    {
     int i,j,*temp;

     for (i=0;i<n;i++)
       cout<<mas[i]<<"   "<<endl;

       j=n-1;
       while ((mas[j]<mas[j-1])|j>0)
         {
          temp=mas[j-1];
          mas[j-1]=mas[j];
          mas[j]=temp;
          --j;
         }
       for (i=0;i<n;i++)
         cout<<mas[i]<<"   "<<endl;

    }

  void main ()
    {

     int   menu, exit;
     int mas[20];
     int n;

     n=0;

     while (exit==0)
       {
	cout << "1   add element"  << endl << "2   exit" << endl;
	cin>>menu;
	switch (menu)
	  {
	   case 1: { cin>>mas[n];  ++n; add(&#038;mas, n);  } ; break;

	   default: exit=1;
	  }
       };

    }

</code></pre>
]]></content:encoded>
			<wfw:commentRss>http://www.studcode.ru/archiv/sortirovka-metod-pogruzheniya/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Внешняя сортировка.</title>
		<link>http://www.studcode.ru/archiv/vneshnyaya-sortirovka/</link>
		<comments>http://www.studcode.ru/archiv/vneshnyaya-sortirovka/#comments</comments>
		<pubDate>Sat, 31 Oct 2009 15:40:42 +0000</pubDate>
		<dc:creator>sleepes</dc:creator>
				<category><![CDATA[Дополнительные разделы программировани]]></category>
		<category><![CDATA[лекции]]></category>
		<category><![CDATA[сортировки]]></category>

		<guid isPermaLink="false">http://www.studcode.ru/?p=415</guid>
		<description><![CDATA[Внешняя сортировка &#8211; это сортировка данных находящихся на внешних носителях. Применяется в тех случаях, когда загрузить все данные в ОЗУ не представляется возможным. Внешняя сортировка должна учитывать особенности внешних накопителей, как правило это более быстрая последовательность чтения по сравнению с произвольным. Иногда может отличаться даже в десятки раз. Внешняя сортировка как правило использует метод слияния.
Основная [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Внешняя сортировка</strong> &#8211; это сортировка данных находящихся на внешних носителях. Применяется в тех случаях, когда загрузить все данные в ОЗУ не представляется возможным. Внешняя сортировка должна учитывать особенности внешних накопителей, как правило это более быстрая последовательность чтения по сравнению с произвольным. Иногда может отличаться даже в десятки раз. Внешняя сортировка как правило использует метод слияния.<br />
Основная идея метода:<br />
1 3 9 15 20<br />
2 5 9  9 21<br />
После слияния получаем  1 2 3 5 9 9 9 15 20 21<br />
<span id="more-415"></span><br />
<span style="text-decoration: underline;"><strong>Простое двупутевое слияние</strong></span><br />
Начальная подготовка. Заводим 4 файла на четырех различных носителях: два объявляем входными и два выходными. Готовим входные файлы. Резервируем ОЗУ по максимуму. Пусть в памяти помещается <strong>К</strong> записей. Загружаем из входного файла К записей и сортируем любым методом внутренней сортировки. Выводим отсортированный массив во входной файл 1. Снова читаем очередные К записей из общих данных. Сортируем и выводим во второй входной. Операции повторяем записывая отсортированные фрагменты то в первый то во второй входные файлы, пока исходные данные не исчерпаются.<br />
В результате такой подготовки мы получим в двух входных файлах по несколько упорядоченных цепочек длинной К , кроме последнего длина которого может быть меньше.<br />
<strong>Слияние.</strong> Берем первые фрагменты из двух входных файлов и выполняем слияние этих двух фрагментов, записываем результат в первый выходной файл. Если один из фрагментов закончился раньше другого, то оставшиеся элементы второго просто переписываем в выходной файл. Когда закончились оба фрагменты, проверяем выше описанные операции для следующих двух, только записываем во второй выходной файл и так далее попеременно выводя в первый и второй выходные файлы.<br />
В результате фазы слияния мы получили в двух выходных файлах те же данные, что и во входных, но длина цепочек в два раза больше, а количество в два раза меньше. Меняем местами входные и выходные файлы. Выходные очищаем и повторяем снова фазу слияния. Повторяем смену файлов до тех пор, пока не получим один упорядоченный файл.</p>
<p><span style="text-decoration: underline;"><strong>Естественное двупутевое слияние</strong></span><br />
Недостатком предыдущего метода можно считать необходимость учитывать длину цепочки, что в некоторых случаях не желательно.<br />
Для того что бы не считать длину цепочки можно ввести условие окончания цепочки, таким условием может быть когда следующий элемент меньше предыдущего для возрастающей сортировки. Может так получиться, что первый элемент больше последнего элемента предыдущего фрагмента. В этом случае считаем, что это одна возрастающая цепочка, так как это только ускорит сортировку.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.studcode.ru/archiv/vneshnyaya-sortirovka/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Пирамидальная сортировка</title>
		<link>http://www.studcode.ru/archiv/piramidalnaya-sortirovka/</link>
		<comments>http://www.studcode.ru/archiv/piramidalnaya-sortirovka/#comments</comments>
		<pubDate>Fri, 23 Oct 2009 19:35:10 +0000</pubDate>
		<dc:creator>sleepes</dc:creator>
				<category><![CDATA[C]]></category>
		<category><![CDATA[Дополнительные разделы программировани]]></category>
		<category><![CDATA[Лабораторные работы]]></category>
		<category><![CDATA[исходники]]></category>
		<category><![CDATA[лабы]]></category>
		<category><![CDATA[лекции]]></category>
		<category><![CDATA[сортировки]]></category>

		<guid isPermaLink="false">http://www.studcode.ru/?p=208</guid>
		<description><![CDATA[Эта сортировка похожа на сортировку выбора из дерева, но сортирует массив не используя дополнительный ресурс памяти. Для этого дерево сохраняем в исходном массиве по следующим правилам:

Отцом к является узел [k/2]
Потомками узла к являются 2к и 2к+1

Пирамидой будем называть дерево удовлетворяющие написаным выше правилам и к ним еще плюс:
k[j/2]&#62;=k[j]
1&#60;=[j/2]&#60;j&#60;=N

Procedure shift(L,R: integer);
var
i,j:integer;
x: integer;
Begin
i:=L;
j:=2*L;
x:=A[L];
if (j&#60;R) and (A[j]&#60;A[j+1]) then
j:=j+1;
while [...]]]></description>
			<content:encoded><![CDATA[<p>Эта сортировка похожа на сортировку выбора из дерева, но сортирует массив не используя дополнительный ресурс памяти. Для этого дерево сохраняем в исходном массиве по следующим правилам:</p>
<ul>
<li>Отцом <strong>к</strong> является узел <strong>[k/2]</strong></li>
<li>Потомками узла <strong>к</strong> являются <strong>2к</strong> и <strong>2к+1</strong></li>
</ul>
<p>Пирамидой будем называть дерево удовлетворяющие написаным выше правилам и к ним еще плюс:</p>
<p><strong>k[j/2]&gt;=k[j]</strong></p>
<p><strong>1&lt;=[j/2]&lt;j&lt;=N</strong></p>
<p><strong><span id="more-208"></span></strong></p>
<pre style="padding-left: 30px;"><code>Procedure shift(L,R: integer);
var
i,j:integer;
x: integer;
Begin
i:=L;
j:=2*L;
x:=A[L];
if (j&lt;R) and (A[j]&lt;A[j+1]) then
j:=j+1;
while (j&lt;=R) and (x&lt;A[j]) do
begin
A[i]:=A[j];
i:=j;
j:=2*j;
if (j&lt;R) and (A[j]&lt;A[j+1]) then
inc(j);
end;
A[i]:=x;
end;
</code></pre>
<p>Пример исспользования:</p>
<pre style="padding-left: 30px;"><code>
L:=(N div 2)+1;
R:=N;
while L&gt;1 do
begin
L:=L-1;
shift(L,R);
end;
while (R&gt;1) do
begin
x:=A[1];
A[1]:=A[R];
A[R]:=x;
R:=R-1;
shift(L,R);
end;
</code></pre>
]]></content:encoded>
			<wfw:commentRss>http://www.studcode.ru/archiv/piramidalnaya-sortirovka/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Сортировка выбора из дерева</title>
		<link>http://www.studcode.ru/archiv/sortirovka-vybora-iz-dereva/</link>
		<comments>http://www.studcode.ru/archiv/sortirovka-vybora-iz-dereva/#comments</comments>
		<pubDate>Thu, 22 Oct 2009 20:33:48 +0000</pubDate>
		<dc:creator>sleepes</dc:creator>
				<category><![CDATA[Дополнительные разделы программировани]]></category>
		<category><![CDATA[лекции]]></category>
		<category><![CDATA[сортировки]]></category>

		<guid isPermaLink="false">http://www.studcode.ru/?p=124</guid>
		<description><![CDATA[Сортировку выбора можно значительно ускорить если сохранять после каждого поиска минимума какие то значения, которые ускорят поиск следующего минимального. Одним из путей будет построение дерева выбора. Исходный массив будет являться листьями дерева. Листья попарно объединяем и в новый узел выносим максимальный из двух, таким образом получается второй ярус. Этот ярус так же попарно объединяем и [...]]]></description>
			<content:encoded><![CDATA[<p>Сортировку выбора можно значительно ускорить если сохранять после каждого поиска минимума какие то значения, которые ускорят поиск следующего минимального. Одним из путей будет построение дерева выбора. Исходный массив будет являться листьями дерева. Листья попарно объединяем и в новый узел выносим максимальный из двух, таким образом получается второй ярус. Этот ярус так же попарно объединяем и т.д. , пока не останется один элемент, который и будет корнем дерева. В корне будет максимальное значение . Этот элемент мы удаляем из корня и ищем следующий максимальный за исключением корня. Это можно сделать за меньшее число сравнений.</p>
<p><span id="more-124"></span>Достаточно спуститься от корня к листьям тем путем, каким значение попало в корень. Для этого достаточно найти среди двух потомков равные ему и перейти, повторять операцию до тех пор, пока не дойдем до листьев. Лист удаляем, после этого поднимаемся снова к корню в поимке нового максимального значения.</p>
<p><a href="http://www.studcode.ru/wp-content/uploads/2009/10/DSC00020.JPG"><img src="http://www.studcode.ru/wp-content/uploads/2009/10/DSC00020-300x225.jpg" alt="сортировка выбора из дерева" title="сортировка выбора из дерева" width="300" height="225" class="aligncenter size-medium wp-image-125" /></a></p>
<p><span style="text-decoration: underline;">Достоинство:</span> высокая скорость, приближенная к скорости сортировки Хоара.</p>
<p><span style="text-decoration: underline;">Недостаток:</span> требуется много памяти.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.studcode.ru/archiv/sortirovka-vybora-iz-dereva/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Сортировка. Усовершенствованный простой выбор</title>
		<link>http://www.studcode.ru/archiv/sortirovka-usovershenstvovannyj-prostoj-vybor/</link>
		<comments>http://www.studcode.ru/archiv/sortirovka-usovershenstvovannyj-prostoj-vybor/#comments</comments>
		<pubDate>Thu, 22 Oct 2009 20:00:31 +0000</pubDate>
		<dc:creator>sleepes</dc:creator>
				<category><![CDATA[Дополнительные разделы программировани]]></category>
		<category><![CDATA[лекции]]></category>
		<category><![CDATA[сортировки]]></category>

		<guid isPermaLink="false">http://www.studcode.ru/?p=120</guid>
		<description><![CDATA[Так как в любой момент сортировки у нас занято ровно n элементов, то можно обойтись без дополнительного массива. Это можно сделать если каждый раз менять минимальный элемент с первым неупорядоченным и в дальнейшем этот элемент исключать из поиска минимального.

]]></description>
			<content:encoded><![CDATA[<p>Так как в любой момент сортировки у нас занято ровно <strong>n</strong> элементов, то можно обойтись без дополнительного массива. Это можно сделать если каждый раз менять минимальный элемент с первым неупорядоченным и в дальнейшем этот элемент исключать из поиска минимального.</p>
<p><span id="more-120"></span></p>
]]></content:encoded>
			<wfw:commentRss>http://www.studcode.ru/archiv/sortirovka-usovershenstvovannyj-prostoj-vybor/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Сортировка. Простой выбор</title>
		<link>http://www.studcode.ru/archiv/prostoy-vybor/</link>
		<comments>http://www.studcode.ru/archiv/prostoy-vybor/#comments</comments>
		<pubDate>Thu, 22 Oct 2009 19:31:15 +0000</pubDate>
		<dc:creator>sleepes</dc:creator>
				<category><![CDATA[Дополнительные разделы программировани]]></category>
		<category><![CDATA[лекции]]></category>
		<category><![CDATA[сортировки]]></category>

		<guid isPermaLink="false">http://www.studcode.ru/?p=115</guid>
		<description><![CDATA[Есть два массива: один исходный (заполненный), а второй пустой для результата. Заводим переменную в которой будем хранить номер первого не занятого элемента в выходном массиве. Ищем в исходном массиве минимальный элемент, переносим его значение на свободное место в выходном массиве, а в исходном массиве это значение меняем на пустое или бесконечно большое. Повторяем операции до [...]]]></description>
			<content:encoded><![CDATA[<p>Есть два массива: один исходный (заполненный), а второй пустой для результата. Заводим переменную в которой будем хранить номер первого не занятого элемента в выходном массиве. Ищем в исходном массиве минимальный элемент, переносим его значение на свободное место в выходном массиве, а в исходном массиве это значение меняем на пустое или бесконечно большое. Повторяем операции до тех пор пока в исходном массиве есть хотя бы один элемент не пустой.</p>
<p><span style="text-decoration: underline;">Недостатки:</span> долго, требуется два массива.</p>
<p><span id="more-115"></span></p>
]]></content:encoded>
			<wfw:commentRss>http://www.studcode.ru/archiv/prostoy-vybor/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Быстрая сортировка Хоара</title>
		<link>http://www.studcode.ru/archiv/bystraya-sortirovka-xoara/</link>
		<comments>http://www.studcode.ru/archiv/bystraya-sortirovka-xoara/#comments</comments>
		<pubDate>Wed, 21 Oct 2009 18:28:13 +0000</pubDate>
		<dc:creator>sleepes</dc:creator>
				<category><![CDATA[Дополнительные разделы программировани]]></category>
		<category><![CDATA[лекции]]></category>
		<category><![CDATA[сортировки]]></category>

		<guid isPermaLink="false">http://loveisland.in.ua/?p=51</guid>
		<description><![CDATA[Идея метода. Пусть есть достаточно быстрый способ переставить элементы массива так, чтобы для некого среднего элемента соблюдалось: левее него все элементы только меньше или равны ему, а правее больше либо равны, тогда этот некий элемент уже занял свою окончательную позицию. Средний элемент исключаем из расмотрения и расматриваем таким же образом элементы стоящие слева и справа [...]]]></description>
			<content:encoded><![CDATA[<p><span style="text-decoration: underline;">Идея метода.</span> Пусть есть достаточно быстрый способ переставить элементы массива так, чтобы для некого среднего элемента соблюдалось: левее него все элементы только меньше или равны ему, а правее больше либо равны, тогда этот некий элемент уже занял свою окончательную позицию. Средний элемент исключаем из расмотрения и расматриваем таким же образом элементы стоящие слева и справа от него.</p>
<p><span id="more-51"></span></p>
<p>Получается рекурсивный алгоритм, признаком выхода из рекурсии является уменьшение диапозона до одного или менее элементов.</p>
<p>Qsort(L,R) &#8211; процедура среднего элемента</p>
<p>заведем два счетчика i,j</p>
<p>i:=L;      j:=R;</p>
<p>i будет увеличиваться, а j уменьшаться, при чем в одну интерпретацию изменять только один счетчик. Объявляем активным любой из них, каждый раз сравниваем B[i] и B[j]. Если требуется обмен, то мы его производим и меняем активный элементы и активный счетчик. Процедура завершается когда i=j, то есть и будет средний элемент.</p>
<p><em>3  2  1  6  5  9  4  7  0  8</em></p>
<p><em>i                                    j </em></p>
<p><em>3  2  1  6  5  8  4  7  0  9</em></p>
<p><em> i                 j</em></p>
<p><em>3  2  1  6  5  0  4  7  8  9</em></p>
<p><em> i           j </em></p>
<p><span style="text-decoration: underline;">Сложность</span> Хоара пропорциональна n*log(n) по основанию 2</p>
<p><span style="text-decoration: underline;">Недостаток</span>. Быстрее всего работает если элементы упорядочены наоборот и медленее всего если элементы упорядочены или близки к этому.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.studcode.ru/archiv/bystraya-sortirovka-xoara/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Сортировка. Метод пузырька</title>
		<link>http://www.studcode.ru/archiv/sortirovka-metod-puzyrka/</link>
		<comments>http://www.studcode.ru/archiv/sortirovka-metod-puzyrka/#comments</comments>
		<pubDate>Wed, 21 Oct 2009 17:36:51 +0000</pubDate>
		<dc:creator>sleepes</dc:creator>
				<category><![CDATA[Дополнительные разделы программировани]]></category>
		<category><![CDATA[лекции]]></category>
		<category><![CDATA[сортировки]]></category>

		<guid isPermaLink="false">http://loveisland.in.ua/?p=40</guid>
		<description><![CDATA[Есть массив B не упорядоченный длиной N, требуется его отсортировать не заводя дополнительных массивов.
i &#8211; счетчик
M &#8211; расматриваемая часть массива ,  M:=N-1
Несколько раз подряд просматриваем массив В от 0 до M-1 . Для каждого i сравниваем B[i] и B[i+1]. Если они стоят не в нужном порядке, то меняем их местами и к:=i (k &#8211; место [...]]]></description>
			<content:encoded><![CDATA[<p>Есть массив <strong>B</strong> не упорядоченный длиной <strong>N</strong>, требуется его отсортировать не заводя дополнительных массивов.</p>
<p><strong>i</strong> &#8211; счетчик</p>
<p><strong>M</strong> &#8211; расматриваемая часть массива ,  M:=N-1</p>
<p>Несколько раз подряд просматриваем массив В от 0 до M-1 . Для каждого i сравниваем B[i] и B[i+1]. Если они стоят не в нужном порядке, то меняем их местами и к:=i (k &#8211; место последнего обмена).  к+1 занял свое место, M:=k; перед каждым просмотром к:=0. Просмотры повторяются до тех пор пока M&gt;0/</p>
<p><span style="text-decoration: underline;">Достоинство метода:</span> не требуется дополнительных массивов.</p>
<p><span style="text-decoration: underline;">Недостаток:</span> время алгоритма пропорционально квадрату количества элементов.</p>
<p><span id="more-40"></span></p>
]]></content:encoded>
			<wfw:commentRss>http://www.studcode.ru/archiv/sortirovka-metod-puzyrka/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Сортировка. Метод погружения</title>
		<link>http://www.studcode.ru/archiv/sortirovka-metod-pogruzheniya-2/</link>
		<comments>http://www.studcode.ru/archiv/sortirovka-metod-pogruzheniya-2/#comments</comments>
		<pubDate>Wed, 21 Oct 2009 17:13:25 +0000</pubDate>
		<dc:creator>sleepes</dc:creator>
				<category><![CDATA[Дополнительные разделы программировани]]></category>
		<category><![CDATA[лекции]]></category>
		<category><![CDATA[сортировки]]></category>

		<guid isPermaLink="false">http://loveisland.in.ua/?p=33</guid>
		<description><![CDATA[Этот метод аналогичен сортировке простыми вставками, но совмещает два процесса: поиск места вставки и раздвижение элементов.
Алгоритм: Добавляем элемент в конец отсортированного массива и начинаем добавленый элемент менять местами с предыдущим до тех пор пока предыдущий не окажется меньшим или равным ему.


]]></description>
			<content:encoded><![CDATA[<p>Этот метод аналогичен <a href="http://loveisland.in.ua/archives/29" target="_blank">сортировке простыми вставками</a>, но совмещает два процесса: поиск места вставки и раздвижение элементов.</p>
<p><span style="text-decoration: underline;">Алгоритм:</span> Добавляем элемент в конец отсортированного массива и начинаем добавленый элемент менять местами с предыдущим до тех пор пока предыдущий не окажется меньшим или равным ему.</p>
<p><span id="more-33"></span></p>
<p style="padding-left: 30px;">
]]></content:encoded>
			<wfw:commentRss>http://www.studcode.ru/archiv/sortirovka-metod-pogruzheniya-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

