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.
porownanie dwoch metod sortowania
-
- Użytkownik
- Posty: 120
- Rejestracja: 21 kwie 2009, o 12:13
- Płeć: Kobieta
- Podziękował: 9 razy
-
- 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
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:
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);