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

ilyas.dll Messages postés 53 Date d'inscription   Statut Membre Dernière intervention   -  
Edwyn Messages postés 105 Statut Membre -
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!!
Configuration: Windows XP
Internet Explorer 6.0

5 réponses

  1. loupius
     
    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
  2. fiddy Messages postés 441 Date d'inscription   Statut Contributeur Dernière intervention   1 847
     
    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
  3. ilyas.dll Messages postés 53 Date d'inscription   Statut Membre Dernière intervention   17
     
    ok je vais tenter!!...merci mec!!
    1
  4. Edwyn Messages postés 105 Statut Membre 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
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

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