**[**Back to SORTING SWAG index**]** **[**Back to Main SWAG index**]** **[**Original**]**

*{
> Thanks For the code... It worked great! BTW, why are there so many
> different sorting methods? Quick, bubble, Radix.. etc, etc
Yes, there are lots of sorting algorithms out there! I also found this out
the hard way! :-) A couple of years ago, I only knew the so-called "bubble"
sort, and decided to create my own sorting algorithm. It would have to be
faster than bubble, yet remaining small, simple, and not memory hungry.
and I did it, but only to find out a few weeks later that there were much
better sorts than the one I created... But it sure was great fun beating
bubble! (which is brain-dead anyway! ;-)
So here it is, my two cents to the history of sorting algorithms, the
amazing, blazingly fast (*)... ELEVAtoR SorT!... Why ELEVAtoR??, you ask in
unison! Because it keeps going up & down! :-)
}
***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
**lo,
peak,
temp,
temp2 : Word;
**begin
**peak := 1;
lo := 1;
**Repeat
**temp := a[lo];
temp2 := a[lo + 1];
**if **temp > temp2 **then
begin
**a[lo] := temp2;
a[lo + 1] := temp;
**if **lo <> 1 **then **dec(lo);
**end
else
begin
**inc(peak);
lo:=peak;
**end**;
**Until **lo = 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**.
*{
(*) it's speed lies somewhere between "BUBBLE" and "inSERT"; it's much
faster than "BUBBLE", and a little slower than "inSERT"... :-)
}
*

**[**Back to SORTING SWAG index**]** **[**Back to Main SWAG index**]** **[**Original**]**