Tri dans un tableau 2 dimension sous c++!!.. [Fermé]

Signaler
Messages postés
55
Date d'inscription
dimanche 21 décembre 2008
Statut
Membre
Dernière intervention
27 août 2012
-
Edwyn
Messages postés
105
Date d'inscription
vendredi 20 juin 2008
Statut
Membre
Dernière intervention
31 mars 2011
-
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!!

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
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 75974 internautes nous ont dit merci ce mois-ci

Messages postés
11137
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
18 octobre 2016
1 661
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
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 75974 internautes nous ont dit merci ce mois-ci

Messages postés
55
Date d'inscription
dimanche 21 décembre 2008
Statut
Membre
Dernière intervention
27 août 2012
13
ok je vais tenter!!...merci mec!!
1
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 75974 internautes nous ont dit merci ce mois-ci

Messages postés
105
Date d'inscription
vendredi 20 juin 2008
Statut
Membre
Dernière intervention
31 mars 2011
14
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
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 75974 internautes nous ont dit merci ce mois-ci

Quelqu'un aurait il une réponse un peu plus développé svp ??