![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Сортировка "двухпутевая вставка " [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