.


:




:

































 

 

 

 





 

.

. , :

- , ;

- . , . , , ;

- .

 

:

- ;

- ;

- .

 

:

Const nmax = 30;

type MyArray = array [1..nmax] of Integer;

var A: MyArray; n:integer;

. . - . . . - , .

 

{ }
procedure Bubble (var A: MyArray; n:integer);
var i, j: integer;
v: Integer;
begin
for i:= 2 to n do
for j:= n downto i do
if A[j-1]>A[j] then begin
v:= A[j-1];
A[j-1]:= A[j];
A[j]:= v;
end;

end; { }

 

. n - 1 . . . .


"4 3 1 2":

- : 4 3 1 2;
- : 1 4 3 2;
- : 1 2 4 3;
- : 1 2 3 4.

 

, , .

, . , 1/2 (n2 - n) , n . , n-1 , n/2 . . , . 3/4 (n2-n), 3/2 (n2 - n) .

, ( ). , , .

. , , , : (, "1" "4 3 1 2") , , (, "4"), . . . . , " " - .

, , - . , .

 

{ }

procedure Shaker(var A: MyArray; n:integer);
var j, k, l, r, v: integer;

begin
l:= 2; r:= n; k:= n;
repeat
for j:= r downto l do
if A[j-1]<A[j] then begin { }
v:= A[j-1];
A[j-1]:= A[j];
A[j]:= v;
k:= j;
end;

l:= k+1;

for j:= l to r do
if A[j-1]>A[j] then begin { }
v:= A[j-1];
A[j-1]:= A[j];
A[j]:= v;
k:= j;
end;
r:= k-1;
until l>r;
end; { }

 

 

. n-1 .

, "2 4 1 3", :

- : 2 4 1 3;

- : 1 4 2 3;

- : 1 2 4 3;

- : 1 2 3 4.

n-1 , n/2 . , 1/2(n2-n) . 3(n-1), n2/4+3(n-1). ( ) n-1 , .

 

 

{ }
procedure Selet(var A: MyArray; n:integer);
var i, j, k, v: integer;

begin
for i:= i to n-1 do begin
k:= i;
v:= A[i];
for j:= i+1 to n do { }
if A[j]<v then begin
k:= j;
v:= A[j];
end;
A[k]:= A[i]; { }
A[i]:= v;
end;
end; { }

 

, .

 

 

. . . . , .

 

, "4 3 1 2" c :


- : 4 3 1 2;
- : 3 4 1 2;
- : 1 3 4 2;
- : 1 2 3 4.
:

{ }
procedure Inser(var A: MyArray; n:integer);
var i, l,v: integer;

begin
for i:= 2 to n do begin
v:= A[i];
j:= i-1;
while (v<A[j]) and (j>0) do begin
A[j+1]:= A[j];
j:= j-1;
end;
A[j+1]:= v;
end;
end; { }

 

. , n-1. , 1/2(n2 +n)-1, 1/4 (n2+n-2). : - : 2 (n-1); - : 1/4 (n2+9n-10); - : 1/2 (n2+3n-4).

, , . . .

-, , .. , . .

-, : , - . , , . , , , .

 





:


: 2016-09-06; !; : 1416 |


:

:

,
==> ...

1973 - | 1887 -


© 2015-2024 lektsii.org - -

: 0.012 .