Hi
Ich wollte den ShellSort mal aus Spaß zum Sortieren einer ListView nehmen. Warum funktioniert der Code nicht?
Code:
var i,j,h:integer;
v:TListItem;
begin
h:=1;
Repeat
h:=(3*h)+1;
Until (h>ListView1.Items.Count-1);
Repeat
h:=(h div 3);
For i:=(h+1) To ListView1.Items.Count-1 Do
Begin
v:=ListView1.Items.Item[i];
j:=i;
While ((j>h) and (ListView1.Items.Item[j-h].Caption>v.Caption)) Do
Begin
ListView1.Items.Item[j]:=ListView1.Items.Item[j-h];
dec(j,h);
End;
ListView1.Items.Item[j]:=v;
End;
Until (h=1);
end;