bonsoir
j'aimerai savoir comment trier les indices du tableau avec les elements du tableau (tri avec utulisation de variable auxiliaire).
cad les indices doivent etre triées aussi.
Version imprimable
bonsoir
j'aimerai savoir comment trier les indices du tableau avec les elements du tableau (tri avec utulisation de variable auxiliaire).
cad les indices doivent etre triées aussi.
Bonsoir,
En C, un indice de tableau est forcément un nombre entier qui donne le rang de l'élément par rapport au début du tableau. En ce sens, ils sont forcément triés puisqu'ils repèrent toujours une même position. Il n'y a pas de tableau associatif « natif ».
Ça a l'air d'être un devoir scolaire et il semble que tu n'aies pas compris quel est l'objet de l'exercice. Montre-nous ici ce que tu as déjà écrit (avec les balises [code] et [/code]) et on tâchera de t'aider.
A mon avis, il souhaite trier les éléments de son tableau mais en gardant le même indice devant. Mais il faut dans ce cas comprendre "id" quand il dit "indice".
Mais ce n'est que supposition. Comme le suggère Obsidian, il serait bien que tu nous montre ton énoncé et ce que tu as déjà codé.
Je subodore une référence implicite aux tableaux associatifs qui n'existent pas nativement en C, même s'il existe des bibliothèques pour faire quelque chose d'équivalent. Mais ceci va nous emmener vers les collections de paires clés-valeurs et l'indexation de colonnes comme dans les bases de données. Donc je préfère avancer prudemment. :-)
Bonjour,
Ce qui est sur, c'est que les explications du PO sont tout ... sauf limpides.
Je comprends la même chose que OSNLC (d'ailleurs quelle mouche a piqué celui ou celle qui lui a collé un -1 ??? ) : trier le tableau (selon les valeurs) mais tout en conservant l'index d'origine des valeurs
Sans utiliser de notation C à dessein :
en entrée, tableau [ 17, 4, 34, 1 ]
au final tableau [ ( val 1, index 3), (val 4, index 1), (val 17, index 0), (val 34, index 2) ]
Cela suppose de :
- définir/choisir un type pour les éléments du tableau final (dim 2, tableau de structures, ...) ou gérer 2 tableaux (celui des valeurs, celui des indexes initiaux)
- construire un autre tableau (donc pas un simple tri (qsort) du tableau en entrée), voire 2
Parce qu'on est sur le forum C (et donc je ne donne pas la réponse) et que, dans les intervenants, certains connaissent Python, je pense à ça :
Code:
1
2
3
4
5 >>> tab = [ 17, 4, 34, 1 ] >>> result = sorted(enumerate(tab), key = lambda (i,v): v) >>> result [(3, 1), (1, 4), (0, 17), (2, 34)]
Euh non. Le C permet d'associer des éléments disparates par le biais de structures, ce serait régresser que de gérer 2 tableaux distincts en parallèle tout en sachant qu'ils vont ensemble. N'oublie pas que la relecture et l'évolutivité sont aussi des concepts importants d'un code...
Tu deviens super doué en Python !!!
Tu as tout à fait raison. Je voulais élargir les possibilités pour faire ce tri et je me suis laissé emporter.Citation:
Envoyé par Sve@r
Et, de toute façon, le plus simple est bien d'avoir les index initiaux qui collent aux basques des valeurs lors du tri (c'est bien ce que je fais en python d'ailleurs !). Une fonction de comparaison bien sentie, qui ne s'occupe que de la valeur, en paramètre de qsort, fera très bien l'affaire.
Reste toujours à savoir ce que veut effectivement faire le PO, peu bavard (un grand classique sur le forum...)
[EDIT] d'un autre côté, c'est très souvent des messages postés le jour J pour un truc à rendre le jour J+1. On parle surement tous dans le vide mais ça servira aux prochains !