Accueil Ti-Gen Foire Aux Questions Chat sur le chan #tigcc sur IRC
Liste des membres Rechercher Aide
Bienvenue Invité !   Se connecter             Mes sujets   
Administrer
0 membre(s) et 1 visiteur(s) actif(s) durant les 5 dernières minutes Utilisateurs actifs : Aucun membre + 1 visiteur
Avant de poster sur le forum, il y a des régles de bases à respecter pour une bonne entente et un respect de tous.
Veuillez lire la charte du forum.
  :: Index » Forum PC » Programmation C/C++ DOS/Win32 » algo (6 réponse(s))
./POST DE DEPART (post n°0)   Marquer comme non lu.
MWeiss Ecrit le: Jeudi 20 octobre 2005 à 13:37 Déconnecté(e)    Voir le profil de MWeiss Envoyer un email à MWeiss Visiter le site WEB de MWeiss Envoyer un message privé à MWeiss  

salut

comment feriez vous pour trier un tableau en C.
moi je fait comme sa mais je trouve sa super compliquez et je suis pas sur qu il est pas marche tout le temps :

void cetteEchange(int leGrand, int lePetit, int lIndice2)
     {
     leTablo[lIndice2] = lePetit;
     leTablo[lIndice2+1] = leGrand;
     }/*cetteEchange*/


void ceTrie(void)
     {
     int lIndice1, lIndice2;
     for(lIndice1=0;lIndice1<=MAX;lIndice1++)
          for(lIndice2=lIndice1%2;lIndice2<MAX-1;lIndice2+=2)
              if(leTablo[lIndice2]>leTablo[lIndice2+1])
                    cetteEchange(leTablo[lIndice2],leTablo[lIndice2+1],lIndice2);
     }/*cetteEchange*/


MAX etant une constante global qui determine le nombre d'element du tableau
leTablo est global et il est remplis de nombre aléatoire

en fait en gros j echange deux a deux, deux nombre consecutif et sa MAX fois

quand dite vous?

merci
L'amour nait ds un regard, Grandit dans un baiser et meurt dans une larme
    
./Post n°1   Marquer comme non lu.
RHJPP Ecrit le: Jeudi 20 octobre 2005 à 14:37 Déconnecté(e)    Voir le profil de RHJPP Envoyer un email à RHJPP Envoyer un message privé à RHJPP  


void Echange(int tab[],int p1,int p2)
{
  int temp;
  temp=tab[p1];
  tab[p1]=tab[p2];
  tab[p2]=temp;
}

void TriBulles(int tab[],int taille)
{
  int n,i;
  do
  {
    n=0;
    for (i=0;i<taille-1;i++)
    {
      if (tab[i]>tab[i+1])
      {
        Echange(tab,i,i+1);
        n++;
      }
    }    
  }
  while (n!=0);
}

ou
void Echange(int tab[],int p1,int p2)
{
  int temp;
  temp=tab[p1];
  tab[p1]=tab[p2];
  tab[p2]=temp;
}

int TrouveMin(int tab[],int inf,int sup)
{
  int pos=inf;
  int i;
  for (i=inf+1;i<=sup;i++)
  {
    if (tab[i]<tab[pos])
    {
      pos=i;
    }
  }
  return pos;
}

void TriTableau(int tab[],int taille)
{
  int i;
  for (i=0;i<taille-1;i++)
  {
    Echange(tab,i,TrouveMin(tab,i,taille-1));
  }
}
    
./Post n°2   Marquer comme non lu.
Kevin Kofler Ecrit le: Jeudi 20 octobre 2005 à 19:22 Déconnecté(e)    Voir le profil de Kevin Kofler Envoyer un email à Kevin Kofler Visiter le site WEB de Kevin Kofler Envoyer un message privé à Kevin Kofler  


J'appellerais qsort. :p
http://tigcc.ticalc.org/doc/stdlib.html#qsort
http://www.opengroup.org/onlinepubs/009695399/functions/qsort.html
http://msdn.microsoft.com/library/en-us/vclib/html/_crt_qsort.asp
Membre de l'équipe de TIGCC: http://tigcc.ticalc.org
Mainteneur du portage Linux/Unix de TIGCC: http://tigcc.ticalc.org/linux/
Membre de l'équipe de CalcForge: http://www.calcforge.org:70/

Participez à la reprise de Ti-Gen!
    
./Post n°3   Marquer comme non lu.
geogeo Ecrit le: Samedi 22 octobre 2005 à 17:55 Déconnecté(e)    Voir le profil de geogeo Envoyer un email à geogeo Visiter le site WEB de geogeo Envoyer un message privé à geogeo  


Sans utiliser de fonction ça donne:
On pourrait utiliser une fonction type swap vers la fin quand même.

for (i=0; i<taille; i++)
{
  for (k=i, j=k+1; j<taille; j++)
    if (Tab[j]<Tab[k])
      k = j;

  sav_data = Tab;
  Tab[i] = Tab[k];
  Tab[k] = sav_data;
}

[i]-Edité le Samedi 22 octobre 2005 à 17:55 par geogeo-
Webmaster du site.
Programmeur sur TI68K. Arkanoid, Nebulus, GFA-Basic.

Plus d'informations sur GFA-Basic (un langage Basic pour TI68K).
http://www.tigen.org/gfabasic
    
./Post n°4   Marquer comme non lu.
Onur Ecrit le: Mardi 25 octobre 2005 à 16:09 Déconnecté(e)    Voir le profil de Onur Envoyer un email à Onur Visiter le site WEB de Onur Envoyer un message privé à Onur  


Il y en a plein des algos de tris. Celui que tu choisi dépend de ce que tu vas faire: si tes données sont grandes, sont nombreuses, sont deja plus ou moins triés etc.. Recherche avec google, tu trouvera forcément une page qui les compare.
Je ne veux pas faire quelque chose de bien, je cherche l'excellence:ETP Studio...


et autres projets à finir avant 2010
    
./Post n°5   Marquer comme non lu.
MWeiss Ecrit le: Mercredi 26 octobre 2005 à 17:05 Déconnecté(e)    Voir le profil de MWeiss Envoyer un email à MWeiss Visiter le site WEB de MWeiss Envoyer un message privé à MWeiss  

ok ok

Kevin : merci mais mon sujet c ete de faire un un prog de tri , sans fonction :)

Notre prof a corriger il a utiliser la methode de la bibliotequaire , yavais un terme plus technique mais me rappelle plus.
L'amour nait ds un regard, Grandit dans un baiser et meurt dans une larme
    
./Post n°6   Marquer comme non lu.
Kevin Kofler Ecrit le: Jeudi 27 octobre 2005 à 02:15 Déconnecté(e)    Voir le profil de Kevin Kofler Envoyer un email à Kevin Kofler Visiter le site WEB de Kevin Kofler Envoyer un message privé à Kevin Kofler  


MWeiss :
Kevin : merci mais mon sujet c ete de faire un un prog de tri , sans fonction :)

Et ton sujet était aussi de faire toi-même le boulot, pas de nous demander. #roll#
Parce que demander sur un forum qu'on te donne l'algo tout fait, ça a la même valeur éducative que d'utiliser carrément qsort. #roll#
Membre de l'équipe de TIGCC: http://tigcc.ticalc.org
Mainteneur du portage Linux/Unix de TIGCC: http://tigcc.ticalc.org/linux/
Membre de l'équipe de CalcForge: http://www.calcforge.org:70/

Participez à la reprise de Ti-Gen!
    
  :: Index » Forum PC » Programmation C/C++ DOS/Win32 » algo (6 réponse(s))
Pages : 1/1     « [1] » »|

.Répondre à ce sujet
Les boutons de code
[B]old[I]talic[U]nderline[S]trikethrough[L]ine Flip Hori[Z]ontallyFlip [V]erticallySha[D]ow[G]low[S]poilerCode [G][C]ite
Bullet [L]istList Item [K] Link [H][E]mail[P]icture SmileysHelp
Couleurs :
Saisissez votre message
Activer les smileys
     

Forum de Ti-Gen v3.0 Copyright ©2004 by Geoffrey ANNEHEIM
Webmaster: Kevin KOFLER, Content Admins: list, Server Admins: Tyler CASSIDY and Kevin KOFLER, DNS Admin: squalyl
Page générée en 41.32ms avec 18 requetes