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 ) . .