🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: fr.comp.lang.c
Article #15657

Re: Routine de trie pour une liste de structure.

#15657
From: Richard Delorme
Date: Wed, 14 Sep 2005 15:25
56 lines
4012 bytes
Charlie Gordon a �crit :

>>>Cela d�pend �norm�ment des donn�es : ton algorithme a une complexit�
>>>quadratique, ce qui signifie qu'il prend un temps proportionnel au carr� de
>>>la longueur de la liste, le cas le pire �tant celui de la liste d�j� tri�e (!).
>>
>>Possible, mais le pire cas est excessivement rare.
> 
> Dans le cas particulier du contexte d'othello, mais quand tu �cris une routine
> de tri, qui sera peut-etre r�utilis�e ailleurs, voir mal utilis�e (appel�e
> plusieurs fois) c'est une mauvaise id�e d'avoir un comportement inefficace quand
> il n'y a rien � faire (liste d�j� tri�e).

Disons que c'est une routine qui ne doit pas �tre utilis�e ailleurs... 
Le probl�me est que, si le cas pathologique est suffisament rare, le 
traiter syst�matiquement a un co�t plus important que l'ignorer.

>>>Note de plus que ton impl�mentation plante si la liste est vide.
>>
>>Impossible, on a toujours un coup � jouer (passer son tour est un coup
>>l�gal dans mon impl�mentation).
> 
> Oui, meme remarque que ci-dessus, c'est une contrainte muette qui justifierait
> un commentaire d'explications, et �viterait un probl�me au programmeur suivant
> qui voudrait r�utiliser ton code sans bien tout comprendre.

C'est �crit quelque part, mais mon exemple ne reprenait pas les 
commentaires.

>>>La boucle do/while n'a aucun int�r�t : une boucle while ou for serait plus
>>>efficace.

Je n'ai pas tiqu� l� dessus la premi�re fois, mais j'ai du mal � 
comprendre comment un do/while peut-�tre moins efficace qu'un while ou 
un for, alors qu'il fait une comparaison en moins...

> On peut peut-�tre gagner quelques cycles en utilisant une variable locale pour
> i->val (je vais supposer que son type est int):

A priori non. Le couple compilateur/CPU doit-�tre suffisament efficace.

> Mais encore faudrait-il que la routine de tri repr�sente une part significative
> du temps de calcul, as-tu fait un peu de profiling ?

Actuellement, la part de cette fonction est d'environ 1.5% d'apr�s 
gprof, mais :
1) gprof marche mal. Entre deux impl�mentations, l'une rendant le 
programme globalement 1% plus rapide que l'autre, gprof trouve la m�me 
part d'utilisation de 1,5%.
2) j'en suis aux micro-optimisations depuis un moment. Pourcent par 
pourcent, j'ai gagn� un facteur 5 en vitesse depuis 5 ans.
3) le taux d'utilisation de cette fonction pourrait �tre sup�rieur si 
elle �tait plus efficace.

-- 
Richard
Technical Details
Message-ID: <432840e4$0$303$7a628cd7@news.club-internet.fr>
Path: arc1-ca.pugleaf.net!g2news1.google.com!news4.google.com!border1.nntp.dca.giganews.com!nntp.giganews.com!newsfeed00.sul.t-online.de!t-online.de!grolier!v.t-online.fr!t-online.fr!not-for-mail
References: <4322f71b$0$17773$ba620e4c@news.skynet.be> <432306a8$0$1023$8fcfb975@news.wanadoo.fr> <43230d96$0$6578$ba620e4c@news.skynet.be> <432447e6$0$1740$8fcfb975@news.wanadoo.fr> <43246b95$0$305$7a628cd7@news.club-internet.fr> <432472f2$0$17219$8fcfb975@news.wanadoo.fr> <4324794b$0$303$7a628cd7@news.club-internet.fr> <dg28sd$a9j$1@reader1.imaginet.fr> <43255e40$0$304$7a628cd7@news.club-internet.fr> <dg8un3$hor$1@reader1.imaginet.fr>

Show Full Headers
Complete Article Headers
X-Google-Thread: f9822,5d389ec4d86f895c
X-Google-Attributes: gidf9822,public
X-Google-Language: FRENCH,ASCII
Path: arc1-ca.pugleaf.net!g2news1.google.com!news4.google.com!border1.nntp.dca.giganews.com!nntp.giganews.com!newsfeed00.sul.t-online.de!t-online.de!grolier!v.t-online.fr!t-online.fr!not-for-mail
Date: Wed, 14 Sep 2005 17:25:27 +0200
From: Richard Delorme <abulmo@nospam.fr>
User-Agent: Mozilla Thunderbird 1.0.6 (X11/20050801)
X-Accept-Language: fr, en
MIME-Version: 1.0
Newsgroups: fr.comp.lang.c
Subject: Re: Routine de trie pour une liste de structure.
References: <4322f71b$0$17773$ba620e4c@news.skynet.be> <432306a8$0$1023$8fcfb975@news.wanadoo.fr> <43230d96$0$6578$ba620e4c@news.skynet.be> <432447e6$0$1740$8fcfb975@news.wanadoo.fr> <43246b95$0$305$7a628cd7@news.club-internet.fr> <432472f2$0$17219$8fcfb975@news.wanadoo.fr> <4324794b$0$303$7a628cd7@news.club-internet.fr> <dg28sd$a9j$1@reader1.imaginet.fr> <43255e40$0$304$7a628cd7@news.club-internet.fr> <dg8un3$hor$1@reader1.imaginet.fr>
In-Reply-To: <dg8un3$hor$1@reader1.imaginet.fr>
Content-Type: text/plain; charset=ISO-8859-15; format=flowed
Content-Transfer-Encoding: 8bit
Lines: 56
Message-ID: <432840e4$0$303$7a628cd7@news.club-internet.fr>
Organization: Club-Internet / T-Online France
NNTP-Posting-Date: 14 Sep 2005 15:25:24 GMT
NNTP-Posting-Host: 62.34.56.67
X-Trace: 1126711524 news.club-internet.fr 303 62.34.56.67
X-Complaints-To: abuse@club-internet.fr