.


:




:

































 

 

 

 


173.173. , .




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

.

. , :

                    .

, . , : , .., . , , , ( ). boolean, flag. flag:= false, , flag:= true. flag = true ( ), . , , . , .

, . , . , , . ? , . , , , , . , .

                   
                    false .
                    true 1-
                    true 2-
                    true 3-
                    true 4-
                    true 5-
                    false 6-

, , , .., 1.

, , :

program sort2;

uses dos, crt;

const b: array[1..10] of byte =

(172,165,180,174,182,179,183,185,176,181);

var a: array[1..10] of byte;

i, n: integer;

flag: boolean;

k: byte;

begin

for i:= 1 to 10 do a[i]:= b[i];

n:= 10;

flag:= true; { }

while flag = true do

begin

flag:= false;

for i:=1 to n-1 do

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

begin

k:= a[i];

a[i]:= a[i+1];

a[i+1]:= k;

flag:= true;

end;

dec(n);

end;

writeln( ³ 10 : );

for i:=1 to 10 do write(a[i], );

readln;

end.

3- : . , : , , , , .. , , , . . 12, 20 , 11-, 1320 . , .

, , , , , .

, , , , , .

:

                   

:

                    1-
  172                 2-
                    3-
      180             4-
                    5-
        180 182         6-
                    7-
                    8-
        179 180 182 183 185   9-
              182 183 185 10-

 

, , . , , , . ճ :

                   
  172                 1 -
                    2 -
      180             3 -
                    4 -
        180 182         5 -
                    6 -
                    7 -
      176 179 180 182 183 185   8 -
            181 182 183 185 9 -

, , , , , , .

³ :

program sort3;

uses dos,crt;

const b: array[1..10] of byte =

(172,165,180,174,182,179,183,185,176,181);

var a: array[1..10] of byte;

i, j: integer;

flag: boolean;

k: byte;

begin

for i:= 1 to 10 do a[i]:= b[i];

for i:= 1 to 10 do write(f, a[i],' ');writeln(f,'');

n:= 10;

for i:= 2 to n do

begin

k:= a[i];

j:= i-1;

flag:= false;

while (j >= 1) and (flag = false) do

begin

if k < a[ j] then

begin

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

j:= j-1;

end

else flag:= true;

end;

a[ j+1]:= k;

end;

writeln( ³ 10 : );

for i:= 1 to 10 do write(a[ i], );writeln;

readln;

end.

, . , . , ( ), . , .

4 : , . , , , , N/2 (N ), N/4 .. ( ) .

                   
                    1 -
                    2 -
                    3 -
                    4 -

, , , .

Program sort4; { }

uses dos,crt;

const b: array[1..10] of byte =

(172,165,180,174,182,179,183,185,176,181);

var a: array[1..10] of byte;

i, j, k, m: integer;

t: byte;

begin

for i:= 1 to 10 do a[i]:= b[i];

{ }

m:=10;

while m>0 do

begin

m:= m div 2;

for i:= m to 9 do

begin

j:= i - m + 1;

while j >= 1 do

begin

if a[ j] <= a[ j + m] then j:= 0

else

begin

t:= a[ j];

a[ j]:= a[ j + m];

a[ j + m]:= t;

end;

dec(j);

end;

end;

end;

{ ʳ }

writeln( ³ 10 : );

for i:= 1 to 10 do write(a[i], ); writeln;

readln;

end.

, , .

³, , , , .  , , ( ) . , , , ( 50 ) . .

 

 





:


: 2016-11-18; !; : 380 |


:

:

- , , .
==> ...

1532 - | 1342 -


© 2015-2024 lektsii.org - -

: 0.044 .