Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1456 connectés 

  FORUM HardWare.fr
  Programmation

  [Pascal] Tri fusion

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[Pascal] Tri fusion

n°141049
BigBrother
pulse powered - useless post
Posté le 19-05-2002 à 17:41:41  profilanswer
 

J'ai un petit probleme sur cette procedure recursive. Ma procedure de fusion des tableaux est nickel, mais l'appel de tri doit merder car le tableau est pas trié correctement.
Voici la procedure d'appel de tri:
 
tab est le tableau, a et b en sont les bornes.
le premier appel est tri(tab,1,n) où n est la taille du tableau,entrée par l'utilisateur. Le tableau est rempli d'entiers aléatoires.

procedure tri(var tab:t_tab; a,b:integer);
          var med:integer;
begin
     med:=(a+b) div 2;
     if (med<>b) then
        begin
           tri(tab,a,med);
           tri(tab,med+1,b);
        end;      
 
     if a<b then
        fusiontab(tab,a,b);
end;

 
Vous pouvez pas me dire si vous voyez un tuc qui merde, parce que moi je sature là...?
 
(Oui, newbie inside, pas la peine de faire de remarque.)


---------------
L'invariance de l'univers lorsqu'on change de referentiel...
mood
Publicité
Posté le 19-05-2002 à 17:41:41  profilanswer
 

n°141050
darklord
You're welcome
Posté le 19-05-2002 à 17:44:51  profilanswer
 

c une dichotomie ton truc là. C'est quoi le résultat?


---------------
Just because you feel good does not make you right
n°141052
BigBrother
pulse powered - useless post
Posté le 19-05-2002 à 17:48:39  profilanswer
 

Le but est de trier un tableau d'entiers. Le principe est de faire une dichotomie du tableau jusqu'a obtenir des tableaux de 1 element. A ce niveau, on fusionne les tableaux 2 par 2 et on remonte jusqu'à obtenir le tableau initial trié. Je suis assez clair où il faut que je détaille ?
Le truc c'est que l'algo m'a l'air bon...mais il l'est pas :(


---------------
L'invariance de l'univers lorsqu'on change de referentiel...
n°141056
darklord
You're welcome
Posté le 19-05-2002 à 17:55:17  profilanswer
 

oui bin ca j'ai bien compris. Je te demande ce que trier [1,3,2,4] donne comme résultat.


---------------
Just because you feel good does not make you right
n°141061
BigBrother
pulse powered - useless post
Posté le 19-05-2002 à 18:05:59  profilanswer
 

oups :o
 
Alors c'est là que ça devient louche: si on entre un tableau déjà trié, il est rendu trié aussi. Mais par ex 5 4 3 1 donne 1 4 5  3
 
96 13 5 10->10 13 96 5
74 35 50 36->35 36 74 50
97 11 24 26->11 26 97 24
 
qq exemples...


---------------
L'invariance de l'univers lorsqu'on change de referentiel...
n°141144
BigBrother
pulse powered - useless post
Posté le 20-05-2002 à 03:27:49  profilanswer
 

Je ne perds pas espoir...J'ai fait des tests sur une centaine de tableau (!!) et j'y vois un peu plus clair: il y a une erreur lorsque le terme le plus élevé se trouve dans la 1ere partie du tableau (ie dans 2 premiers pour un tableau à 4, 3 premiers pour un tableau à 5), et l'erreur consiste en ce que le 1er terme de la 2eme partie du tableau se retrouve toujours à la fin du tableau (mal) trié, alors que tous les autres elements sont bien placés.
Ceci dit, je ne suis pas des masses plus avancé :??:
Si quelqu'un peut m'aider...


---------------
L'invariance de l'univers lorsqu'on change de referentiel...
n°141263
BigBrother
pulse powered - useless post
Posté le 20-05-2002 à 16:08:09  profilanswer
 

Merci de votre aide (:p), j'y suis arrivé. Le truc c'est que c'était la fusion des tableaux qui merdait, pourtant elle avait l'air correcte, et marchait pour les tests sur cette fonction seule. C'est les compteurs du 1er tableau et du tableau final qui étaient initialisé à 1 et non pas à la borne inferieure du morceau de tableau.


---------------
L'invariance de l'univers lorsqu'on change de referentiel...

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation

  [Pascal] Tri fusion

 

Sujets relatifs
Turbo Pascal : help[Pascal]Compression LZW
Cold Fusion et Easyphp 1.6Turbo Pascal
[Pascal] Pb incomprehensible :([Turbo Pascal] Capture d'ecran en mode graphique
[Turbo Pascal] Compilation[URGENT POUR LE BTS] Cold Fusion et Mysql - Il faut que ça marche
(pascal) Lecture sur html ?[Pascal] nombre limite de valeurs en pointeurs
Plus de sujets relatifs à : [Pascal] Tri fusion


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR