Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Сортировка "двухпутевая вставка " [D6, WinXP]


Lloyd ©   (2008-11-24 00:26:00) 

Задача:
Помогите пожалуйста реализовать Сортировку "двухпутевой вставкой "

Времени много потерял,так и не могу закочнить.
Oдну часть сортирует а одну нет.. :(

var

        massiv: array [1..1000] of integer;
       massiv2: array [1..1000] of integer;

procedure TForm1.Button2Click(Sender: TObject);
var
i,k,right,left,m:integer;
res: array [1..1000] of integer;
begin
     k:=(1+n)  div 2;

massiv2[k]:= massiv[1];

left:=k; right:=k; m:=k;
      Memo2.Lines.Clear;
 for i:=2 to n do

   if massiv[i]>massiv2[m] then

     begin m:=(left+right+1) div 2;
       if right=n then
         begin
         left:=left-(m-k); right:=right-(m-k); m:=k;
         end;
right:=right+1;

 massiv2[i] := right;
  Memo2.Lines.Add('Index array[' + IntToStr(i) + ']    :    ' + IntToStr(massiv2[i]));
       end
   else

begin
 m:=(right+left-1) div 2;

 if left=1 then
   begin
   left:=left+(k-m); right:=right+(k-m); m:=k;
   end;
 left:=left-1;
      massiv2[i] := left;
   // Memo2.Lines.Add('Index array[' + IntToStr(i) + ']    :    ' + IntToStr(massiv2[i]));

end;


MBo   (2008-11-24 13:26:00) [1]

Мой код в той ветке идет после слов "oxo-xо", и у меня, как ни странно, он работает...


Lloyd   (2008-11-24 10:53:00) [2]

Не работает.. примерно так же как и у меня :(


MBo   (2008-11-24 05:51:00) [3]

http://forum.algolist.ru/algorithm-sort-search/1192-dvuhputevaia-vstavka.html


Наверх

Титульная страница Поиск, карта сайта Написать письмо