🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: be.comp.programming
Article #15136

Re: Finding 2 biggest numbers in a row

#15136
From: Andy Georges
Date: Wed, 15 Nov 2000 07:48
48 lines
2609 bytes
Hello,

> I am trying to write a program that implements an algorithm to find the two
> largest integers out of a row of numbers.
> My algorithm should work this way:
> 
> The number of elements in the row is a power of 2.
> 
> I separate the row in two halves, and then i apply the same algorithm recursivly
> to the two new rows.  If I have the two biggest numbers of these new rows, then
> i can find the two biggest of the total with maximum 2 comparisons.
> 

Daar je rij niet gesorteerd is, moet je toch alle elementen aflopen.
Daarom zal het veel efficienter zijn om dit op een iteratieve wijze te
doen ipv recursief. Dat bespaart je een hoop functie-oproepen die toch
duurder zijn dan het verhogen van een tellertje. 

je houdt gewoon de waarden van de twee grootste bij in twee variabelen
(in de veronderstelling dat uw rij minstens twee elementen bevat)

in java bvb:

int biggest = rij[0];
int big = rij[1]

for(int i = 2; i < rij.length; ++i) {
  if(rij[i[ > biggest) {
    big = biggest;
    biggest = rij[i];
  }
  else if(rij[i] > big) 
    big = rij[i];
}

zoeken in een niet gesorteerde rij is volgens mij op zijn best O(n), wat
je bereikt met het gewoon doorlopen van de rij.

mvg,
andy

-- 
==========================================================================
Dept. of Applied Mathematics and Computer Science, University of Ghent
Krijgslaan 281 - S9, B - 9000 Ghent, Belgium
Phone: +32-9-264.47.66, Fax: +32-9-264.49.95
E-mail: andy.georges@rug.ac.be 
==========================================================================
Technical Details
Message-ID: <3A12530E.5053259B@pandora.be>
Path: arc1-ca.pugleaf.net!supernews.google.com!sn-xit-02!supernews.com!isdnet!newsfeeds.belnet.be!news.belnet.be!afrodite.telenet-ops.be!not-for-mail
References: <3A11B99A.2BB2E1E7@skynet.be>

Show Full Headers
Complete Article Headers
X-Google-Language: ENGLISH,ASCII-7-bit
X-Google-Thread: fcea4,470c011dba4db9c3
X-Google-Attributes: gidfcea4,public
X-Google-ArrivalTime: 2000-11-14 23:48:20 PST
Path: arc1-ca.pugleaf.net!supernews.google.com!sn-xit-02!supernews.com!isdnet!newsfeeds.belnet.be!news.belnet.be!afrodite.telenet-ops.be!not-for-mail
Message-ID: <3A12530E.5053259B@pandora.be>
From: Andy Georges <andy.georges@pandora.be>
X-Mailer: Mozilla 4.61 [en] (X11; I; FreeBSD 4.2-BETA i386)
X-Accept-Language: en
MIME-Version: 1.0
Newsgroups: be.comp.programming
Subject: Re: Finding 2 biggest numbers in a row
References: <3A11B99A.2BB2E1E7@skynet.be>
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
Lines: 48
Date: Wed, 15 Nov 2000 07:48:17 GMT
NNTP-Posting-Host: 213.224.112.164
X-Complaints-To: abuse@pandora.be
X-Trace: afrodite.telenet-ops.be 974274497 213.224.112.164 (Wed, 15 Nov 2000 08:48:17 MET)
NNTP-Posting-Date: Wed, 15 Nov 2000 08:48:17 MET
Organization: Pandora - Met vlotte tred op Internet