Czy ktos jest w stanie napisać mi procedure do tych typów sortowań ?? Oczywiście pod Pascala. Mam zrobic referat opisujacy 6 typów sortowania + napisac program je wykorzystujacy. Mam już 5 ale nie moge napisac ostatniego 6 ;/ HEAP SORT to porażka spędziłem nad tym juz jakies 3 h i nie ejstem w stanie wybrnąć ..
kod mojego programu:
program sortowania;
Uses CRT;
var
T:array[1..100] of Integer;
T1:array[1..100] of Integer;
i,j,k,l,n,m,x:integer;
nr : Byte;
procedure czytaj;
begin
writeln('Podaj ilość liczb');
readln(n);
writeln('Podawaj kolejno liczby');
for i:=1 to n do readln(T[i]);
end;
procedure pisz;
begin
for i:=1 to n do
write(T[i],' ');
end;
procedure babelki;
begin
writeln;
writeln('Wybrano sortowanie bąbelkowe');
writeln;
czytaj;
for i:=2 to n do
begin
if T[j-1]>T[j] then
begin
k:=T[j-1];
T[j-1]:=T[j];
T[j]:=k;
end;
end;
pisz;
readln;
end;
procedure wstawianie;
begin
writeln;
writeln('Wybrano sortowanie przez wstawianie');
writeln;
czytaj;
for i:=2 to n do
begin
T[0]:=T[i];
j:=i-1;
while
T[0]<T[j] do
begin
T[j+1]:=T[j];
j:=j-1;
end;
T[j+1]:=T[0];
end;
pisz;
readln;
end;
procedure wybieranie;
begin
writeln;
writeln('Wybrano sortowanie przez wybieranie');
writeln;
czytaj;
for i:=1 to n-1 do
begin
k:=T[i];
l:=i;
for j:=i+1 to n do
begin
if T[j]<T[i] then
begin
k:=T[j];
l:=j;
end;
end;
if l>i then
begin
T[l]:=T[i];
T[l]:=k;
end;
end;
pisz;
readln;
end;
procedure quicksort(x,y : Integer);
var
j,k,l,z,wyr : Integer;
begin
k:=x;
j:=y;
wyr:=T[(x+y) div 2];
repeat
while T[k]<wyr do k:=k+1;
while T[j]>wyr do j:=j-1;
if k<=j then
begin
z:=T[j];
T[j]:=T[k];
T[k]:=z;
k:=k+1;
j:=j-1;
end;
until k>j;
if k<y then quicksort(k,y);
if x<j then quicksort(x,j);
end;
procedure kubelek;
begin
writeln;
writeln('Wybrano sortowanie kubełkowe');
writeln;
czytaj;
for i:=1 to m do T[i]:=0;
for i:=1 to n do T[T1[i]]:=T[T1[i]]+1;
x:=1;
for i:=1 to m do begin
while (T[i]>0) do begin
T1[x]:=i;
T[i]:=T[i]-1;
x:=x+1;
end;
end;
pisz;
end;
{PROGRAM GŁÓWNY}
begin
textbackground(9);
textcolor(14);
clrscr;
writeln(' MENU GŁÓWNE PROGRAMU');
writeln;
writeln;
textcolor(15);
writeln(' 1: - Sortowanie bąbelkowe');
writeln;
writeln(' 2: - Sortowanie przez wstawianie');
writeln;
writeln(' 3: - Sortowanie przez wybieranie');
writeln;
writeln(' 4: - Sortowanie Quicksort');
writeln;
writeln(' 5: - Sortowanie kubelkowe');
writeln;
textcolor(14);
write(' Podaj numer opcji: '); readln(nr);
writeln;
writeln;
case nr of
1 : begin
babelki;
end;
2: begin
wstawianie;
end;
3 : begin
wybieranie;
end;
4 : begin
writeln;
writeln('Wybrano sortowanie Quicksort');
writeln;
czytaj;
quicksort(1,n);
pisz;
readln;
end;
5 : begin
kubelek;
readln;
end;
end;
end.