COMMENT TRIER UNE MATRICE

Arnaud16022 1329 Messages postés vendredi 15 août 2003Date d'inscription 16 juin 2010 Dernière intervention - 20 mars 2007 à 18:13 - Dernière réponse :  gueroihi
- 19 févr. 2017 à 15:58
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

http://codes-sources.commentcamarche.net/source/41906-comment-trier-une-matrice

Afficher la suite 
PCBill 48 Messages postés lundi 25 décembre 2006Date d'inscription 29 septembre 2009 Dernière intervention - 23 mars 2007 à 14:26
Bonjour ;
Le problème est toujours là : vous vous êtes servi d'un tableau intermédiaire pour trier ma matrice !!! C'est justement ce que je veux éviter !!!

int * matrice;
int * tableau;
tableau = (int*) malloc(x*y*4);
matrice = tableau;
// remplissage de la matrice
// bubble sort du tableau
// La matrice est triée.....


Merci quand même !!
Byyyyyyyyyyyyyyyyyyyyyyyyyye!
gueroihi > PCBill 48 Messages postés lundi 25 décembre 2006Date d'inscription 29 septembre 2009 Dernière intervention - 19 févr. 2017 à 15:58
voici une version sans utiliser un vecteur intermédiaire.
réalisé par moi: gueroihi mohamed.

#include<stdio.h>
#include<conio.h>
#include<stdlib.h>

main()
{ int M[3][3]={{8,4,6},{7,5,1},{4,9,2}};
int n,m,i,j,k,l,imin,jmin,jj,aux;
n=3;
m=3;

//Affichage avant le tri
printf("Matrice initiale:\n");
for(i=0;i<m;i++)
{ for(j=0;j<n;j++)
printf("%d\t",M[i][j]);
printf("\n");
}

//Le tri (tri par selection)
for (i=0;i<n;i++)
for (j=0;j<m;j++)
{ imin=i;
jmin=j;
for (k=i;k<n;k++)
{ if (k==i) jj=j+1; else jj=0;
for (l=jj;l<m;l++)
if (M[k][l]<M[imin][jmin])
{
imin=k; jmin=l;
}
}
//permutation
aux=M[i][j];
M[i][j]=M[imin][jmin] ;
M[imin][jmin]=aux;
}


//Affichage apres le tri
printf("\n\nmatrice triee:\n");
for(i=0;i<m;i++)
{ for(j=0;j<n;j++)
printf("%d\t",M[i][j]);
printf("\n");
}

getch();
}
Arnaud16022 1329 Messages postés vendredi 15 août 2003Date d'inscription 16 juin 2010 Dernière intervention - 23 mars 2007 à 19:17
*hum* tu c'est ce que c'est un pointeur ? ...
PCBill 48 Messages postés lundi 25 décembre 2006Date d'inscription 29 septembre 2009 Dernière intervention - 23 mars 2007 à 21:33
Merci beaucoup Monsieur ARNAUD :

Grâce à vous j'ai deviné à quel point je suis stupide !
Je comprends à présent votre proposition et je ne vais pas tarder à l'implémenter.
Merci beaucoup.
leadertarik 1 Messages postés vendredi 4 décembre 2009Date d'inscription 21 décembre 2009 Dernière intervention - 21 déc. 2009 à 16:01
import java.io.*;
import java.util.*;
public class tri {
//par le leader
//Tarik
public static void main(String[] args) throws IOException{
BufferedReader c=new BufferedReader(new InputStreamReader (System.in) ) ; // TODO, add your application code
System.out.println("Hello World!");
int tableau[][]=new int [4][4];

for(int i=0;i<4;i++)
{ for(int ii=0;ii<4;ii++)
{

int j=(int)(Math.random() * (100-0)) + 0;
tableau[i][ii]=j;

System.out.print (" "+tableau[i][ii]);

}System.out.println ();}
for(int i=0;i<4;i++)
{
for(int j=0;j<4;j++)
{
for(int ii=0;ii<4;ii++)
{
for(int jj=0;jj<4;jj++)
{
if(tableau[i][j]<tableau[ii][jj])
{
int aux = tableau[i][j];
tableau[i][j]= tableau[ii][jj];
tableau[ii][jj] = aux;
}}}}}
System.out.println ();
for(int i=0;i<4;i++)
{ for(int ii=0;ii<4;ii++)
{
System.out.print (" "+tableau[i][ii]);}System.out.println ();}
System.out.println ("par tarik contactez-moi sur leader_tariman@hotmail.fr" );
}
}
Commenter la réponse de Arnaud16022

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.