Tri dans un tableau 2 dimension sous c++!!..

Fermé
ilyas.dll Messages postés 53 Date d'inscription dimanche 21 décembre 2008 Statut Membre Dernière intervention 27 août 2012 - 18 avril 2009 à 01:45
Edwyn Messages postés 105 Date d'inscription vendredi 20 juin 2008 Statut Membre Dernière intervention 31 mars 2011 - 29 mars 2011 à 17:07
Bonjour,
debutant en programmation et j'ai reussi a etablir un tableau a 2D mais ça reste de le trier en deux ordres(croissant et decroissant!!)...merci d'avance!!
A voir également:

5 réponses

Je ne vois pas trop à quoi peut servir de trier un tableau à deux dimensions; enfin, bref, ce n'est pas mon problème.
Moi je le trierais en considérant qu'il s'agit d'un tableau à une dimension.
Par exemple pour trier 'tab[4][5]', je trierais en fait comme un tableau de 20 éléments; aucune difficulté en utilisant la notation:
*(&tab[0] + i + 4*j) ou *(&tab[0] + 5*i + j) avec 0 <= i < 4 et 0 <= j < 5
l'un ou l'autre suivant que l'on veuille trier dans le sens horizontal ou vertical.
Bon courage.
1
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 844
18 avril 2009 à 09:51
Salut,
Comme a dit loupius, la bonne façon est de considérer ton tableau 2D comme un simple tableau.
Par exemple :
int tab[5][5];
(*tab)[i]; avec i allant de 0 à 5*5;

Ou si tu n'aimes pas la notation (*tab)[i], tu peux utiliser un pointeur et te ramener exactement avec la même notation qu'un simple tableau.
int tab[5][5];
int *p=*tab;
p[i]; avec i allant de 0 à 5*5;

Cdlt
1
ilyas.dll Messages postés 53 Date d'inscription dimanche 21 décembre 2008 Statut Membre Dernière intervention 27 août 2012 17
19 avril 2009 à 23:16
ok je vais tenter!!...merci mec!!
1
Edwyn Messages postés 105 Date d'inscription vendredi 20 juin 2008 Statut Membre Dernière intervention 31 mars 2011 14
29 mars 2011 à 17:07
Bonjour,

En fait en C++ (en C aussi d'ailleur) Quand tu déclare un tableau disons:
int tab[5][5];
Ton programme se réserve en mémoir un tableau de 25 int consécutif. Donc se déplacer dans un tableau à 2 dimensions de taille 5 par 5 revient à se déplacer dans un tableau de taille 25. Car ton
tab
n'est rien d'autre qu'un pointeur sur une zone mémoire et avec l'arithmétique des pointeur, ajouter 1 à un pointeur de type int revient à décaler le pointeur de la taille d'un int sur ton architecture.

https://chgi.developpez.com/pointeur/

Cordialement,
1

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Quelqu'un aurait il une réponse un peu plus développé svp ??
0