porownanie dwoch metod sortowania

aaleks1985
Użytkownik
Użytkownik
Posty: 120
Rejestracja: 21 kwie 2009, o 12:13
Płeć: Kobieta
Podziękował: 9 razy

porownanie dwoch metod sortowania

Post autor: aaleks1985 »

witam,
mam pewne zadanie i problem z wykonaniem, otoz mam porownac dwie metody sortowania (wzielam sortowanie szybkie i przez wybieranie) na tablicy jednowymiarowej.I tu pojawia sie problem, czy ktos mi moze powiedziec jak zrobic, zeby obie metody korzystaly z tej samej tablicy liczb...
pewnie jest to banalne ale ja stawiam pierwsze kroki w programowaniu...

to co juz zrobilam to : ( ale jest tu blad poniewaz obie operuja na dwoch rornych tab.liczb a powinny na tej samej)

const n=5;



var l, p, med, tmp,k, i, amin, imin : integer;
a: array [1..n] of integer;


procedure utworz_tablice;
begin
Randomize;
for i := 1 to n do a := Random(10)+1;
end;


procedure sort_wybieranie;
begin
for i := 1 to n-1 do
begin
amin := a;
imin := i;
for k := i+1 to n do
if a[k]< amin then
begin
amin := a[k];
imin := k;
end;
a[imin] := a;
a := amin;
end;
end;


procedure sort_szybkie (lewy, prawy : integer);
begin
if lewy<prawy then
begin
l := lewy;
p := prawy;
med := a[lewy];

repeat
begin
while a[l]< med do l := l+1;
while a[p]> med do p := p-1;
if l<=p then
begin
tmp := a[l];
a[l] := a[p];
a[p] := tmp;
l := l+1;
p := p-1;
end;
end;
until l>=p;

sort_szybkie(lewy, p);
sort_szybkie(l, prawy);
end;
end;




begin


writeln;
writeln('Sortowanie przez wybieranie');
writeln('---------------------------');
writeln;

utworz_tablice;

writeln('Tablica nieposortowana: ');
for i := 1 to n do write(a:3);
writeln;

sort_wybieranie;

writeln('Tablica posortowana: ');
for i := 1 to n do write(a:3);





writeln;
writeln;
writeln;
writeln('Sortowanie szybkie');
writeln('------------------');
writeln;

utworz_tablice;

writeln('Tablica nieposortowana: ');
for i := 1 to n do write(a:3);
writeln;

sort_szybkie(1,n);

writeln('Tablica posortowana: ');
for i := 1 to n do write(a:3);



readln;
end.
filip.wroc
Użytkownik
Użytkownik
Posty: 153
Rejestracja: 17 sty 2010, o 15:37
Płeć: Mężczyzna
Lokalizacja: Wroclaw
Pomógł: 13 razy

porownanie dwoch metod sortowania

Post autor: filip.wroc »

w mainie losuj jakas tablice.
napisz sobie funkcje kopiujTablice() ktora bedzie po rpostu zawierala petle przepisujaca wejscowa tablice na wyjsciowa i zwracala wyjsciowa. zmien swoje procedury sortowania tak, aby przyjmowaly w parametrze tablice ktora maja posortowac.
teraz robisz cos na zasadzie:

Kod: Zaznacz cały

matryca:=losujTablice();
kopia:=kopiujTablice(matryca);
sort_wybieranie(kopia);

kopia:=kopiujTablice(matryca);
sort_szybkie(kopia);
ODPOWIEDZ