Shellsort

Shellsort

Program: przedstawiający shellsort na danej tablicy.

Program sam losuje 50 liczb, po czym przy użyciu metody Shella sortuje wszystkie liczby.

Kompilator: Turbo Pascal

Galeria:

Program w akcji.

Kod programu:

program shellsort;
uses crt;
var
  a:array[1..100] of word;
  i,j,n,k,tmp:integer;
begin
     clrscr;
     n:=50;
     for i:=1 to n do
     begin
          a[i]:=random(5000)+1;
          write(a[i]:5);
     end;
     for k:=3 downto 1 do
     for i:=1 to n-1 do
     for j:=i+1 to n do
     if a[j]<a[i]
        then
        begin
             tmp:=a[j];
             a[j]:=a[i];
             a[i]:=tmp;
        end;
     writeln;
     writeln('Po sortowaniu: ');
     for i:=1 to n do
         write(a[i]:5);
     readkey;
end.

Słowniczek pojęć:

Algorytm sortowania działający w miejscu i korzystający z porównań elementów. Stanowi uogólnienie sortowania przez wstawianie, dopuszczające porównania i zamiany elementów położonych daleko od siebie. Jego pierwszą wersję opublikował w 1959 roku Donald Shell. Złożoność czasowa sortowania Shella w dużej mierze zależy od użytego w nim ciągu odstępów. Wyznaczenie jej dla wielu stosowanych w praktyce wariantów tego algorytmu pozostaje problemem otwartym.