.


:




:

































 

 

 

 


. ()




.

.

, , ( var) ( {*} {**} ). , , a[1], a[0] "", j . , a[0] :

for i:= 2 to N do

if a[i-1]>a[i] then

begin a[0]:= a[i]; {*}

j:= i-1;

while a[j]>a[0] do {**}

begin a[j+1]:= a[j];

j:= j-1;

end;

a[j+1]:= a[0];

end;

, , . N-1 0 .

- "" - (N+1)*N/2, (N-1)*(N+3). , ~N2 ( " ") .

, :

5 3 4 3 6 2 1

, ( , , ):

0 : 5343621

1 : 5343621 1 1+13) 1+24)

2 : 3543621 1 1+1 1+2

3 : 3453621 2 2+1 2+2

4 : 3345621 0 1 0

5 : 3345621 5 5+1 5+2

6 : 2334561 6 6+1 6+2

: 1233456 15 20 25

 

. .

.

: .

. - , - , "" .

, , "" . , (, , ..) : 11) , .

, :

a[1]
a[2] a[3]
a[4] a[5] a[6] a[7]
a[8] a[9] a[10] a[11] a[12]  
           

, a[i] (1<=i<=N div 2) "" a[2*i] a[2*i+1]. "". , , .

"". ( ((N div 2)+1)- N-) , . ( ) a[i], a[2*i] a[2*i+1] "" - a[i].

, ( ) , " " - "" :

for i:= (N div 2)downto 1 do

begin j:= i;

while j<=(N div 2) do

begin k:= 2*j;

if (k+1<=N) and (a[k]<a[k+1])

then k:= k+1;

if a[k]>a[j]

then begin x:= a[j];

a[j]:= a[k];

a[k]:= x;

j:= k

end

else break

end

end;





:


: 2015-10-21; !; : 1159 |


:

:

, .
==> ...

1507 - | 1414 -


© 2015-2024 lektsii.org - -

: 0.011 .