.
, ,
, () . , () , . . . ( ). ( ). , ().
, . "", . , . . : - - . ( ), ( ).
33 7. . 7,33,15,11,0,4,25,-1.
33 15. . 7,15,33,11,0,4,25,-1.
33 11. . 7,15,11,33,0,4,25,-1.
33 0. . 7,15,11,0,33,4,25,-1 ..
33 -1. . 7,15,11,0,4,25,-1,33. .
25 -1.. . 7,15,11,0,4,-1,25,33.
4 -1.. . 7,15,11,0,-1,4,25,33 ..
7 -1.. . -1,7,15,11,0,4,25,33. (. 1).
, .
, , () .
.
=
=
<
"" -1
= - 1
"" +1
= + 1
k:= 25; { }
|
|
s:= 1; { }
e:= 25; { }
while e > s do
Begin
for i:= e downto s+1 do if A [i] < A[i-1] then
Begin
tmp:= A[i];
A[i]:= A[i-1];
A[i-1]:= tmp;
k:= i; { }
end;
s:=k;
for i:= s to e-1 do if A[i]>A[i+1] then
Begin
tmp:= A[i];
A[i]:= A[i+1];
A[i+1]:= tmp;
k:= i;
end;
e:=k;
end;
. .
.
9) . , . : , "" , .
( t ) :
- , kt;
- .
kt, kt-1..., k1 . :
- k1 = 1;
- t kt > kt-1;
- , kt ( , ).
"" :
1, 4, 13, 40, 121, _ (kt = 1+3*kt-1)
1, 3, 7, 15, 31, _ (kt = 1+2*kt-1 = 2t -1)
, . ( ).
t ( , , kt)?
, , , ( 2) 1, 3, 7, 15 .. . . , kt = 2t -1.
, (N) :
kt <= N -1 < kt+1
, ,
2t <= N < 2t+1
( 2):
t <= log N < t+1
, , t :
t = trunc(log N))
, Pascal ( ). "" :
logmx =logzx/logzm
m = 2, z = e. , t :
t:= trunc(ln(N)/ln(2)).
t 2, - 1. , 1 :
t:= trunc(ln(N)/ln(2))-1
:
|
|
k:= (1 shl t)-1; {k= 2t-1}
k. , k . , (k+1)-, , , , .
? : (N) k , , :
s:= N div k;
N k , 1. "" "" - N k:
P:= N mod k;