N×log2N, N2 .
N. , .
( ) , , . .
1) i=1, j=N 2) x. 3) , Ai>x. , Aj<x. i<=j, Ai Aj, i+1, j-1 |
( x), .. , . .
procedure QSort(L,R:integer); //L, R
var i,j,x,w:integer;
begin
i:=L; j:=R;
x:=A[(L+R) div 2]; //x -
repeat
while A[i]<x do i:=i+1; //
while A[j]<x do j:=j-1; //
if i<=j then
begin // A[i] A[j]
w:=A[i];
A[i]:=A[j];
A[j]:=w;
i:=i+1; j:=j-1
end
until i>j;
if L<j then QSort(L,j); //
if i < R then QSort(i,R) //
End;
begin Sort(1,N); ...
End.
n , . :
- ;
- .
. , , . 64 (264 1) . 5 , , . 1883 . . .
program Towers; { , - } var N: integer; { } procedure Move(n:byte; A, C, B: char); begin if n=1 then writeln(A,->, C) else begin Move(n-1, A, B, C); writeln(A,->, C); Move(n-1, B, C, A) end end; begin write( =); readln(N); Move(N, A, C, B) end. |
|
|
, (, ). , . |
4 .
, .
Nil.
Pascal :
1) , . pointer, : var p:pointer;
2) , ; . .