Există o multitudine de algoritmi de sortare printre care (clic pe numele algoritmului pentru informaţii suplimentare):
Algoritmi pentru sortarea numerelor întregi care nu utilizează comparaţii precum şi alţi algoritmi care nu utilizează comparaţii:
Algoritmi de sortare creaţi pentru amuzament (contraexemple din punct de vedere al eficienţei):
Animaţii care prezintă modul de lucru al diverşilor algoritmi de sortare (Youtube):
Program laba11b;
type
stil=array[0..100,0..100] of byte;
Var
a:stil;
i,j,m,n,b:integer;
Procedure lab(i,j:integer;b:integer);
begin
If (i=m) and (j=n) then
writeln(' Sfirsit /')
else
begin
if b=1 then
if a[i+1,j]=0 then {!! La dreapta !!}
begin
Writeln('---> A[' ,i+1, ',' ,j, ']');
b:=1;
lab(i+1,j,b);
end;
if a[i,j+1]=0 then {!! La dreapta !!}
begin
Writeln('---> A[' ,i, ',' ,j+1, ']');
b:=1;
lab(i,j+1,b);
end
else
b:=-1;
if b=-1 then
if a[i-1,j]=0 then {!! La stinga!!}
begin
Writeln('<--- A[' ,i-1, ',' ,j, ']');
b:=-1;
lab(i-1,j,b);
end;
if a[i,j+1]=0 then {!! La stinga !!}
begin
Writeln('<---- A[' ,i, ',' ,j+1, ']');
b:=-1;
lab(i,j+1,b);
end
else
b:=0;
if b=0 then
if a[i,j-1]=0 then {!! In Jos !!}
begin
Writeln('----√A[' ,i, ',' ,j-1, ']');
b:=0;
lab(i,j-1,b);
end;
if a[i+1,j]=0 then {!! In Jos !! }
begin
Writeln('----√ A[' ,i+1, ',' ,j, ']');
b:=0;
lab(i+1,j,b);
end
else
b:=2;
if b=2 then
if a[i,j+1]=0 then {!! In Sus !!}
begin
Writeln('----^ A[' ,i, ',' ,j-1, ']');
b:=2;
lab(i,j-1,b);
end;
if a[i-1,j]=0 then {!! In Sus !! }
begin
Writeln('----^ A[' ,i+1, ',' ,j, ']');
b:=2;
lab(i+1,j,b);
end
else
b:=1;
end;
end;
begin
Writeln('Introduceti coordonate in labirint:');
Write('m=');
readln(m);
Write('n=');
readln(n);
for i:=1 to m do
for j:=1 to n do
begin
Write('A[' ,i, ',' ,j, ']=');
Readln(a[i,j]);
end;
for i:=0 to m+1 do
begin
a[i,0]:=1;
a[i,n+1]:=1;
end;
for j:=1 to n+1 do
begin
a[0,j]:=1;
a[m+1,j]:=1;
end;
for i:=0 to m+1 do
begin
Writeln;
for j:=0 to n+1 do
Write(a[i,j]);
end; readln;
b:=1;
lab(1,1,b);
Readln; end.
Comentarii
Trimiteți un comentariu