ALpMontana
КЯaL´da TaNıMaM КuяaL´da
Shell sort algoritması Insertion algoritmasına benzer ancak bu algoritma daha hızlıdır.Çünkü sıralama işlemini bütün dizi üzerinde değilde diziyi guruplara bölerek yapar.Insertion sort metodunu dizinin belli bölümlerine uyguladığımızda Shell sort algoritmasını elde ederiz.:victory
USES CRT;
CONST
N=10;
TYPE
Ary=Array[1..n]of integer;
Indis=1..n;
VAR
list:Ary;
i:indis;
PROCEDURE { shell } Sort(VAR A:Ary);
VAR
Done: Boolean;
Jump,I,J,temp: Integer;
BEGIN
Jump := N;
WHILE Jump > 1 DO
BEGIN
Jump := Jump DIV 2;
REPEAT
Done := True;
FOR J := 1 TO N - Jump DO
BEGIN
I := J + Jump;
IF A[J] > A THEN
BEGIN
temp:=A[J];
A[J]:=A;
A:=temp;
Done := False
END;
END;
UNTIL Done
END;
END;
BEGIN
for i:=1 to n do begin
Write('Listenin ',i,'.elemanı: ');Readln(list);
end;
sort(list);
for i:=1 to n do
Writeln(list);
Readln;
END.
:biggrin
USES CRT;
CONST
N=10;
TYPE
Ary=Array[1..n]of integer;
Indis=1..n;
VAR
list:Ary;
i:indis;
PROCEDURE { shell } Sort(VAR A:Ary);
VAR
Done: Boolean;
Jump,I,J,temp: Integer;
BEGIN
Jump := N;
WHILE Jump > 1 DO
BEGIN
Jump := Jump DIV 2;
REPEAT
Done := True;
FOR J := 1 TO N - Jump DO
BEGIN
I := J + Jump;
IF A[J] > A THEN
BEGIN
temp:=A[J];
A[J]:=A;
A:=temp;
Done := False
END;
END;
UNTIL Done
END;
END;
BEGIN
for i:=1 to n do begin
Write('Listenin ',i,'.elemanı: ');Readln(list);
end;
sort(list);
for i:=1 to n do
Writeln(list);
Readln;
END.
:biggrin