home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Big Blue Disk 17
/
bbd17.zip
/
SHELLC.CHN
(
.txt
)
< prev
next >
Wrap
Turbo Pascal Chain module
|
1987-12-23
|
6KB
|
52 lines
Compares:
Swaps:
Assignments
END OF DEMO. !
sortdemo.chn
%Enter a speed from 1 to 9 (1=slowest)
%or 0 to single step thru program
Press spacebar to continue...
Press ESC to quit...
' Press 1-9 to change speeds, 0 to pause
Bad variable number.
(----------------------------------------
'---------------------------------------
StageNo
StageOver
Distance
@Press Space to continue, ESC to quit, 0-9 to change speeds, or
to scroll.
PROCEDURE ShellSort(
VAR L { List to be sorted }
:List;
& N { No. of items to be sorted }
:INTEGER
);
# Distance, StageNo, Loc : INTEGER;
StageOver: BOOLEAN;
%PROCEDURE Swap( VAR X, Y : INTEGER );
VAR Temp:INTEGER;
BEGIN
Temp := X;
X := Y;
Y := Temp
BEGIN { ShellSort }
Distance := N DIV 2;
WHILE Distance > 0 DO
BEGIN
( FOR StageNo := Distance TO N-1 DO
BEGIN
StageOver := False;
Loc := StageNo+1;
5 WHILE (Loc-Distance>0) AND NOT StageOver DO
BEGIN
) IF L[Loc] < L[Loc-Distance]
4 THEN Swap( L[Loc],L[Loc-Distance] )
( ELSE StageOver := True;
# Loc := Loc - Distance
END
END;
Distance := Distance DIV 2
END
END; { ShellSort }