[Back to SORTING SWAG index] [Back to Main SWAG index] [Original]
{
>Why can't Borland come out With a Universal sort since they made the
>Program.. <G>
I guess there's no such thing as a "universal" sort... There are a few very
good sorting algorithms, and depending on some factors, you just have to
choose the one that best fits your needs!
Here's an update to my ELEVAtoR sort, this one's even faster!
}
Program mysort;
Uses Crt;
Const
max = 1000;
Type
list = Array[1..max] of Word;
Var
data : list;
dummy : Word;
Procedure elevatorsort(Var a: list; hi: Word);
Var
dummy,
low,
peak,
temp,
temp2 : Word;
begin
peak := 1;
low := 1;
temp2 := a[low + 1];
Repeat
temp := a[low];
if temp > temp2 then
begin
a[low] := temp2;
a[low + 1] := temp;
if low <> 1 then dec(low);
end
else
begin
inc(peak);
low:=peak;
if low <> hi then temp2:=a[low + 1];
end;
Until low = hi;
end;
begin
ClrScr;
Writeln('Generating ', max ,' random numbers...');
randomize;
For dummy:=1 to max do data[dummy]:=random(65535);
Writeln('Sorting random numbers...');
elevatorsort(data,max);
For dummy:=1 to max do Write(data[dummy]:5,' ');
end.
[Back to SORTING SWAG index] [Back to Main SWAG index] [Original]