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

  FORUM HardWare.fr
  Programmation
  Algo

  Tri d'un tableau par indexation

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Tri d'un tableau par indexation

n°1886742
sensunique
Posté le 20-05-2009 à 23:19:06  profilanswer
 

Bonjour
j'ai du mal à comprendre le comportement du tableau d'indexation d'un tableau, surtout quand on supprime un enregistrement du tableau et qu il faut mettre à jour le tableauIndex
Puis je avoir une explication et un exemple d'algo svp
Merci :jap:

mood
Publicité
Posté le 20-05-2009 à 23:19:06  profilanswer
 

n°1886782
vttman2
Je suis Open ...
Posté le 21-05-2009 à 09:22:38  profilanswer
 

Hi sensunique !
 
C'est quoi exactement ton problème ?
 
ex :
Tableau de 5 éléments 2 colonnes
 
TAB =>
N°entrée - Libellé
-----------------------
1 Tarte à la menthe
2 Croissants
3 Café
4 Gateau au chocolat
5 Biere
 
Tu veux créer un tableau d'indexation de ce tableau avec
un index sur libellé  
ce qui nous donne
 
IND =>
N°index N°entrée
--------------------
1 5          (Biere)
2 3          (Café)
3 2          (Croissants)
4 4          (Gateau au chocolat)
5 1          (Tarte à la menthe)
 
 
Si tu supprimes les Croissants
TAB contient maintenant
=>
N°entrée - Libellé
-----------------------
1 Tarte à la menthe
3 Café
4 Gateau au chocolat
5 Biere
 
et notre index devrait contenir
maintenant  
IND =>
N°index N°entrée
--------------------
1 5          (Biere)
2 3          (Café)
4 4          (Gateau au chocolat)
5 1          (Tarte à la menthe)
 
voir ceci (réindexation)
 
IND =>
N°index N°entrée
--------------------
1 5          (Biere)
2 3          (Café)
3 4          (Gateau au chocolat)
4 1          (Tarte à la menthe)
 
Bon ta question est un peu générale
alors mon explication l'est aussi ;-)
 


---------------
il n'y a pas que le VTT dans la vie, il y a le Snowboard aussi ...
n°1886792
sensunique
Posté le 21-05-2009 à 11:24:59  profilanswer
 


slt vttman2
 
Merci bcp pour les explications mais est ce que tu peux me donner un algorithme qui permet de mettre à jour la tablIndex, qui dit que le croissant  qui a été supprimé de la tableAliment (qui a tel indice) doit être supprimé de la tablIndex tout en décalant les indices des autres aliment comme tu as fait.
 
supposant que les deux tableaux ont déjà été triés
 
pour supprimer  de TabAlim
 
t <-- 1
tantque tabAlim[t] <> croissant
faire t <-- t+1
fintantque
 
après on décale les aliment à partir de "t" indice jusqu à la fin du tabAlim  de façon à écraser le Croissant
 
Donc "t" est l indice de l'élément supprimé dans TablAlim mais je ne sais pas comment l'utiliser pour attaquer le tbleau des index?
 
Merci
 
 
 
 
 
 
 
 
 
 

n°1886796
vttman2
Je suis Open ...
Posté le 21-05-2009 à 12:03:31  profilanswer
 

Donc Croissants à virer  
dans Tab pas de soucis tu fais comme tu as dit  
ou suppression logique (rajout d'un champ Valid par exemple)
Dans ce dernier cas tu ne tiendras compte que des élements
avec valid = "OK"
 
ex :  
TAB =>  
N°entrée - Libellé - Valid
-----------------------  
1 Tarte à la menthe OK
2 Croissants           NOK
3 Café                   OK  
4 Gateau au chocolat  OK
5 Biere                      OK
 
 
Pour la table index tu dois virer le N°entrée 2 qui n'existe plus
( ou Valid = "NOK" )
donc là  
tu vas rechercher  le N °Entrée (2) dans ta table index
une fois trouvé, tu as donc en face le N°Index
Du début de ta table d'index jusqu'à ce N°index, rien  
à faire ...
ensuite il faut renuméroter (recopie de l'entrée n+1 dans n)
=>
Pour i allant de N°index à (MaxElements -1) faire
   tabindex (i) = tabindex(i +1)
fpour
   
Ok ?
 
 
 
 
 
 
 
 


---------------
il n'y a pas que le VTT dans la vie, il y a le Snowboard aussi ...
n°1886820
sensunique
Posté le 21-05-2009 à 14:09:09  profilanswer
 


 
slt
 
c'est un peu flou dans ma tête
 
tu as dit: "tu vas rechercher  le N °Entrée (2) dans ta table index
une fois trouvé, tu as donc en face le N°Index"
 
il est égal à combien son indice par rapport à la boucle de supression précédente  
 
si je fais
 
pour i de Début à FinTab-1
tab[i]<-- tab[i+1]
finPour
 
j=1
tantque
tabIndex[j] <> [i]
j++  
FinTanque
 
//Donc si j ai bien compris j a  la valeur de i, c est à dire de l'élément supprimé de tab élément.
 
TabIndex[j] <-- i+1
 
 
 
 
 
 
 
 
 
 
 
[/quotemsg]

n°1886833
vttman2
Je suis Open ...
Posté le 21-05-2009 à 15:10:35  profilanswer
 

TAB(1)= "Tarte à la menthe"  
TAB(2)= "Croissants"  
TAB(3)= "Café"  
TAB(4)= "Gateau au chocolat"  
TAB(5)= "Biere"
 
 
 
IND(1)= 5          (Biere)  
IND(2)= 3          (Café)  
IND(3)= 2          (Croissants)  
IND(4)= 4          (Gateau au chocolat)  
IND(5)= 1          (Tarte à la menthe
 
si tu supprimes TAB(2)
ex : TAB(2) = "" maintenant
et mettre à jour la table index ...
 
1) tu dois rechercher x tel que IND(x) = 2
donc ici tu trouveras x ayant comme valeur 3  
car IND(3) = 2 ... OK ?
 
2) Décalage
 
De 1 à (3-1 = 2) rien à faire ça reste pareil qu'avant
=>
IND(1)= 5          (Biere)  
IND(2)= 3          (Café)  
 
 
Ensuite  
de 3  à  (5-1)  
tu dois faire
 
IND(3) <- IND(3+1) ecrasement  
=>
IND(3)= 4          (Gateau au chocolat)  
 
puis
 
IND(4) <- IND(4+1) ecrasement
=>
IND(4)= 1          (Tarte à la menthe)
 
bref on en revient à cette boucle
Pour i allant de 3 à (5 -1) faire  
   IND (i) = IND(i +1)  
fpour  
 
OK ?
 


---------------
il n'y a pas que le VTT dans la vie, il y a le Snowboard aussi ...
n°1886858
sensunique
Posté le 21-05-2009 à 18:37:32  profilanswer
 

Merci je commence à saisir la nuace
je recherche des tutos d'algo sur le net traitant des tris par indexation mais j ai rien trouvé
là j ai bien compris
Merci bcp ;)

n°1886947
vttman2
Je suis Open ...
Posté le 22-05-2009 à 07:56:53  profilanswer
 

Pas de quoi ;-)
 
Sinon tu peux faire un tour ici
=>
http://www.developpez.net/forums/f [...] gorithmes/
 
Pour les réponses sur "developpez.net" ça dépendra comment les gens sont "lunés" mais à essayer ...


---------------
il n'y a pas que le VTT dans la vie, il y a le Snowboard aussi ...

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

  Tri d'un tableau par indexation

 

Sujets relatifs
affichage de double requetes dans un seul tableauaffichage de double requetes dans un seul tableau
Acceder à un tableau via une seule variable via un pointeur?Créer un formulaire et récupérer les données saisies ds un tableau
tableau en PHP4 avec 4 indxesCompter les occurences d'un tableau
Problème fusion cellule tableau htmlun tableau collé a gauche et en haut est-ce possible ?
Besoin d'aide pour marge de tableaubuilder c++ : tableau
Plus de sujets relatifs à : Tri d'un tableau par indexation


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