Re: I need the fastest routine



Hi Clément,

try this:

procedure MinMaxArray( const aArray : Array of Integer; out aMax, aMin :
integer );
var
i, m, mmod, n: Integer;
begin
aMax := 0;
aMin := 0;
if Length(aArray) > 0 then
begin
aMin := aArray[0];
aMax := aArray[0];
m := Length(aArray) div 4;
mmod := Length(aArray) mod 4;
n := 0;
for i := 0 to m -1 do
begin
if (aArray[n] < aMin) or (aArray[n+1] < aMin) or
(aArray[n+2] < aMin) or (aArray[n+3] < aMin) then
begin
if aArray[n] < aMin then
aMin := aArray[n];
if aArray[n+1] < aMin then
aMin := aArray[n+1];
if aArray[n+2] < aMin then
aMin := aArray[n+2];
if aArray[n+3] < aMin then
aMin := aArray[n+3];
end;

if (aArray[n] > aMax) or (aArray[n+1] > aMax) or
(aArray[n+2] > aMax) or (aArray[n+3] > aMax) then
begin
if aArray[n] > aMax then
aMax := aArray[n];
if aArray[n+1] > aMax then
aMax := aArray[n+1];
if aArray[n+2] > aMax then
aMax := aArray[n+2];
if aArray[n+3] > aMax then
aMax := aArray[n+3];
end;

Inc(n, 4);
end;

for i := 0 to mmod-1 do
begin
if aArray[i+n] < aMin then
aMin := aArray[i+n];
if aArray[i+n] > aMax then
aMax := aArray[i+n];
end;
end;
end;



.



Relevant Pages

  • Re: I need the fastest routine
    ... procedure MinMaxArray(const aArray: Array of Integer; out aMax, ... aMin: integer); ... var p: pinteger; ...
    (borland.public.delphi.language.basm)
  • Re: I need the fastest routine
    ... procedure MinMaxArray(const aArray: Array of Integer; out aMax, aMin: ... var i: integer; ...
    (borland.public.delphi.language.basm)
  • Re: Anyone recognise this sort algorithm?
    ... if A> AMax then AMax = A ... if A< Amin then Amin = A ... Counting sort runs in O, if the range is a known constant. ... Well spotted Arthur, I was convinced this type of sort had been ...
    (comp.programming)
  • Re: Anyone recognise this sort algorithm?
    ... I dont have the dos bat code to hand but here is what I mean by no ... if A> AMax then AMax = A ... if A< Amin then Amin = A ... @echo off ...
    (comp.programming)
  • Re: I need the fastest routine
    ... Rudy Velthuis [TeamB] wrote: ... if aArray> aMax then ... if aArray< aMin then ... FOUR pebbles. ...
    (borland.public.delphi.language.basm)