pb de trie a bulle - C++ - Programmation
Marsh Posté le 11-08-2003 à 15:47:55
tu veux bien corriger tes fautes de frappe?
edit: merci
Marsh Posté le 11-08-2003 à 15:51:39
theShOcKwAvE a écrit : valeur de var ? |
longueur de key, ici 4
Marsh Posté le 11-08-2003 à 15:53:11
Urd-sama a écrit : tu veux bien corriger tes fautes de frappe? |
ca y est, tu as interet a poster une reponse maintenant
Marsh Posté le 11-08-2003 à 15:58:31
xiluoc a écrit : |
Sauf que t'as pas corrigé le titre: c "tir à vu" pas "tir a bulle"
Marsh Posté le 11-08-2003 à 15:59:21
ReplyMarsh Posté le 11-08-2003 à 16:04:51
theShOcKwAvE a écrit : test sur key et swap sur array_struct ... C'est normal, ca ? |
ben je pense que oui, lorsqu il classe le tableau de structure par ordre d ID alphabetique il bouge toute la structure.
exemple
Struc 0 : 2 elmts : ID 'A' et DATA
Struc 1 : 2 elmts : ID 'M' et DATA
Struc 2 : 2 elmts : ID 'K' et DATA
...
'A' < 'M' donc on ne fait rien
'M' > 'K' donc on bouge struct 2 a la place de struct 1 (swap)
Marsh Posté le 11-08-2003 à 16:11:44
j'ai dupliqué la caine dans array_struct au lieu de simplement le faire pointer sur la chaine et j'arrive à ton problème, c'est donc que tu dois rajouter un échange des infos dans la chaine ou travailler directement àavec la chaine que tu modifies (cette solution me semble quand même plus propre !)
Edit : nom de var
Marsh Posté le 11-08-2003 à 16:12:30
theShOcKwAvE a écrit : dans ce cas, il faut aussi que tu appliques tes modifs sur key ... Sinon, ton tri à bulles est faux ... Ce serait pas ca, tout bêtement, ton pb ? |
mais, ouuuuiiiii
parceque la, je tri en fonction des lettres, et je les changes en plein milieu.
Marsh Posté le 11-08-2003 à 16:15:45
Code :
|
Marsh Posté le 11-08-2003 à 16:16:25
bof. je suis au taf là, on en reparle plus tard si tu veux
Marsh Posté le 11-08-2003 à 16:16:44
Taz a écrit : c'est nul comme solution. mieux vaut utiliser std::sort |
j ai essaye mais j ai pas bien compris les parametres qu il fallait passer dans mon cas.
Marsh Posté le 11-08-2003 à 16:17:16
xiluoc a écrit : |
je te montrerais quand j'aurais le temps
Marsh Posté le 11-08-2003 à 16:19:35
Taz a écrit : je te montrerais quand j'aurais le temps |
ok , tks
merci a Shockwave
t as meme pris le temps de tester .
Marsh Posté le 11-08-2003 à 16:34:53
Code :
|
il semblerait que ce soit pas dispo dans la STL de microsoft donc télécharges-en une autre si tu utilises Visual ...
pour trier ton tableau de structures, tu devras sans doute passer par un sort du style :
Code :
|
Si j'ai dit une connerie, Taz me corrigera, je compte sur lui !
Edit : plein plein plein d'edits !
Marsh Posté le 11-08-2003 à 16:55:36
Taz a écrit : ouais, c'est bof, mais sur le principe c'est ça |
Ben ... Quand tu auras le temps, tu viendras nous expliquer pourquoi c'est bof ! Parce que ca ne me parait pas si bof que ca ! Pour que ce soit moins bof, il faudrait faire un "vrai" itérateur ... Style passer par une structure de données plus évoluée qu'un simple tableau et il faudrait implémenter l'opérateur < sur sa structure, non ?
Edit : j'oublie des mots ! Décidément !
Marsh Posté le 11-08-2003 à 17:26:26
on reprend doucement
on peut effectivement surcharger operator<, là on montre avec un comparateur: un objet qui est chargé de comparé 2 objets. définir une fonction doit fonctionner, mais autant voir une bien meilleur méthode -> un objet fonction. ça vous permet beaucoup plus de chose, vu que votre objet à aussi un constructeur. vous pourriez donc lui passer un paramètre pour modifier un peu le sens de la comparaison... bref plein de possibilité
Code :
|
bon apres le tableau C, ça va un moment. si vous passez veaiment par ça, déclarez une constante N. sinon -> vector, etc
Code :
|
(notez l'instanciation d'un MaStructComparator)
sinon je veux pas voir de strlen ou autre foutaise de char*.
OK?
Marsh Posté le 11-08-2003 à 18:35:31
Taz a écrit :
|
L'opérateur te retourne en fait la fonction qui est définie ? Et tu n'as pas besoin de mettre l'opérateur en statique Ca me surprend un peu ... Je crois que je vais retourner "bouquiner" un peu
Marsh Posté le 12-08-2003 à 05:29:35
Code :
|
operator() ca represente quoi ?
et pour ya un const a la fin ?
c est possible d avoir le // ... rempli ?
Code :
|
?
Marsh Posté le 12-08-2003 à 07:07:51
operator()
ben l'opérateur d'appel, comme pour une fonction
Mon objet o;
o();
et oui
Marsh Posté le 11-08-2003 à 15:38:30
arraystruct est un tableau de structures :
chaque vecteur contient une liste de lettres, je veus ordonner ces vecteurs par ordre de ID alphabetique.
exemple :
struct[0]
vecteur : KFGTREFG
vect ID : E
struct[1]
vecteru OLASDWE
vect ID : L
ect..
le bubble sort ci sessous ne marche pas a tout les coup ..
pour les ID des vecteurs : M A R K
il va me renvoyer A M K R apres le tri ..
key est un string contenant le mot MARK
Message édité par xiluoc le 11-08-2003 à 15:58:19
---------------
jeunes con de la derniere averse, vieux con des neiges d'antant.