IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Algorithmes et structures de données Discussion :

algo de tri


Sujet :

Algorithmes et structures de données

  1. #1
    Futur Membre du Club
    Inscrit en
    Janvier 2003
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Janvier 2003
    Messages : 9
    Points : 7
    Points
    7
    Par défaut algo de tri
    je cherche de bons algos de tri de listes (tri par insertion, tri par bulle, tri rapide,...) de faible complexité.

    En fait je cherche plus un lien, un tutoriel ou un cours.
    Les fenêtres volent, mais les pingouins, eux, ont les pied sur Terre !
    A méditer.

  2. #2
    Membre du Club
    Homme Profil pro
    Editeur
    Inscrit en
    Juillet 2002
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Editeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2002
    Messages : 39
    Points : 50
    Points
    50
    Par défaut
    voici une adresse sympae :

    http://ndailly.free.fr/projets/tris/

  3. #3
    Membre habitué Avatar de Metal Tom
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    119
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 119
    Points : 129
    Points
    129
    Par défaut
    Faudrait savoir quel type de liste tu utilises. Simplement ou doublement chainées ? Circulaire ? etc.
    Tom

  4. #4
    Futur Membre du Club
    Inscrit en
    Janvier 2003
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Janvier 2003
    Messages : 9
    Points : 7
    Points
    7
    Par défaut
    Tu te complique la vie, c'est une liste toute bête à une dimension contenant juste des entiers, que je veux classer avec une certaine relation d'ordre simple : <,>,=<, ....

    Je voudrais seulemnt un algo pour pouvoir implémenter ma PROPRE fonction de tri. Ddans le langage que j'utilise, des fonctions de tri existent déjà, mais je voudrais simplement implémenter ma/mes fonction(s).
    Les fenêtres volent, mais les pingouins, eux, ont les pied sur Terre !
    A méditer.

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 24
    Points : 12
    Points
    12
    Par défaut
    tiens ca c'est un algorytme de tri que j'ai ecris moi meme :

    il tri des probabilité par ordre croissant

    et elle traite meme les valeurs egales

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    	int position;
    	for (i=1 ; i<proba ; i++)
    	{
    			position=0;
     
    		for (j=1; j<proba ; j++)
    		{
    			if (tab[i] < tab[j])
    			{
    				position++;
    			}
     
    			if ((tab[i]==tab[j]) && (j<i)) 
    			{ 
    			position++; 
    			}
    		}
     
    	}
    Le principe c'est que chaque variable triée posséde une position. Tu compare chaque variable a chacune des autres et a chaque fois que tu trouve une variable ayant une valeure superieure, tu fais position ++.

    Ainsi, la variable qui est la plus grande, aura la position 0
    la variable ayant une variable superieur a elle aura la position 0 ++ = position 1
    etc...
    MDS 97 - Visual C++ 5.0 - Win XP - C++ & C

  6. #6
    Membre du Club
    Homme Profil pro
    Editeur
    Inscrit en
    Juillet 2002
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Editeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2002
    Messages : 39
    Points : 50
    Points
    50
    Par défaut
    c'est pas réellemetn une découverte, ce tri s'appelle le tri par insertion et est connu depuis fort longtemps.
    Cependant, il a le gros avantage d'être extrêment simple à mettre en oeuvre.

  7. #7
    Modérateur

    Avatar de Vincent PETIT
    Homme Profil pro
    Consultant en Systèmes Embarqués
    Inscrit en
    Avril 2002
    Messages
    3 190
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Consultant en Systèmes Embarqués
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Avril 2002
    Messages : 3 190
    Points : 11 573
    Points
    11 573
    Par défaut
    Tu as aussi le tri à bulle.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
     
    ok, i, tampon, nbr_item_tableau      variable #
     
         Faire jusqu'à ce que ok = 1 
     	  |
      	 | ok <- 1
      	 | i  <- 1
      	 |
      	 |  Faire tant que (i < nbr_item_tableau) par pas de 1
     	  |   |
          |   | Si (tableau[i-1] > tableau[i]) alors faire
          |   |  |
     	  |   |  | ok <- 0
     	  |   |  | tampon <- tableau[i-1]
     	  |   |  | tableau[i-1] <- tableau[i]
    	   |   |  | tableau[i] <- tampon
     	  |   |  |
     	  |   | Fin si
     	  |   |
     	  |  Fin faire tant que
     	  |
         Fin faire jusqu'à
    Plus d'info : http://www-ipst.u-strasbg.fr/ipst/deug-ti/aide-c/tris/
    La science ne nous apprend rien : c'est l'expérience qui nous apprend quelque chose.
    Richard Feynman

  8. #8
    Membre du Club
    Homme Profil pro
    Editeur
    Inscrit en
    Juillet 2002
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Editeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2002
    Messages : 39
    Points : 50
    Points
    50
    Par défaut
    au risque de me répéter, il y a aussi :
    http://ndailly.free.fr/projets/tris/

  9. #9
    Rédacteur
    Avatar de WOLO Laurent
    Homme Profil pro
    Architecte de base de données
    Inscrit en
    Mars 2003
    Messages
    2 741
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Congo-Brazzaville

    Informations professionnelles :
    Activité : Architecte de base de données
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2003
    Messages : 2 741
    Points : 4 414
    Points
    4 414
    Par défaut
    Vous trouverez votre bonheur ici

    Découvrez la FAQ de MS SQL Server.
    La chance accorde ses faveurs aux esprits avertis !

  10. #10
    Futur Membre du Club
    Inscrit en
    Janvier 2003
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Janvier 2003
    Messages : 9
    Points : 7
    Points
    7
    Par défaut
    Merci à tous, ça m'a beaucoup aidé, j'ai trouvé ce que je cherchais.

    une dernière petite question : lequel est le plus efficace (en terme de complexité) ?
    Les fenêtres volent, mais les pingouins, eux, ont les pied sur Terre !
    A méditer.

  11. #11
    Membre du Club
    Homme Profil pro
    Editeur
    Inscrit en
    Juillet 2002
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Editeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2002
    Messages : 39
    Points : 50
    Points
    50
    Par défaut
    il n'y a pas vraiment de réponse unique, car il faut tenir compte de ce que tu tries, de la quantité à trier, .....

    Neanmoins, des éléments de réponse se trouvent également sur ces sites, ils t'indiquerons les complexités théoriques.

    Bonne lecture.

  12. #12
    Rédacteur
    Avatar de WOLO Laurent
    Homme Profil pro
    Architecte de base de données
    Inscrit en
    Mars 2003
    Messages
    2 741
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Congo-Brazzaville

    Informations professionnelles :
    Activité : Architecte de base de données
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2003
    Messages : 2 741
    Points : 4 414
    Points
    4 414
    Par défaut
    Le Tri récursif rapide QuickSort est le meilleur en terme de complexité O(n.log(n)) suivant son algorithme tiré du livre de Sedgewick....
    Voici son algorithme

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    Global :Tab[min..max] tableau d'entier  
      fonction Partition( G , D : entier )  résultat : entier  
    Local : i , j ,  piv , temp : entier  
    début 
         piv  <---  Tab[D]; 
         i  <--- G-1; 
         j  <---D; 
         repeter 
            repeter  i <---  i+1 jusquà Tab[i] >= piv; 
            repeter  j <---  j-1 jusquà Tab[j] <= piv; 
            temp <---  Tab[i]; 
            Tab[i] <---  Tab[j]; 
            Tab[j] <--- temp 
         jusquà j <= i; 
         Tab[j] <---  Tab[i]; 
         Tab[i] <---  Tab[d]; 
         Tab[d] <--- temp; 
         résultat <---  i 
    FinPartition 
    Algorithme TriRapide( G  , D : entier ); 
    Local :  i : entier  
    début 
     si D > G alors 
        i <--- Partition( G , D ); 
       TriRapide( G , i-1 ); 
       TriRapide( i+1 , D ); 
     Fsi 
    FinTRiRapide

    Découvrez la FAQ de MS SQL Server.
    La chance accorde ses faveurs aux esprits avertis !

  13. #13
    Membre du Club
    Homme Profil pro
    Editeur
    Inscrit en
    Juillet 2002
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Editeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2002
    Messages : 39
    Points : 50
    Points
    50
    Par défaut
    Citation Envoyé par WOLO Laurent
    Le Tri récursif rapide QuickSort est le meilleur en terme de complexité O(n.log(n)) suivant son algorithme tiré du livre de Sedgewick....
    ce n'est pas le seul à disposer de cette complexité

  14. #14
    Membre confirmé
    Avatar de grishka
    Inscrit en
    Janvier 2003
    Messages
    285
    Détails du profil
    Informations forums :
    Inscription : Janvier 2003
    Messages : 285
    Points : 499
    Points
    499
    Par défaut
    Le Tri récursif rapide QuickSort est le meilleur en terme de complexité O(n.log(n)) suivant son algorithme tiré du livre de Sedgewick....
    n'oublie pas de préciser que c'est la complexité moyenne...la complexité maximale est O(n^2). Car le choix du pivot n'est pas toujours optimal

    un des meilleurs tri en terme de complexité max est le tri fusion : O(n.log(n))

    La différence entre quicksort et fusion résidant dans la constante multiplicative en faveur du quicksort.
    "Les gens normaux croient que si ca marche, c'est qu'il n'y a rien à reparer. Les ingénieurs croient que si ca marche, c'est que ca ne fait pas encore assez de choses."
    --Scott Adams

  15. #15
    Rédacteur
    Avatar de WOLO Laurent
    Homme Profil pro
    Architecte de base de données
    Inscrit en
    Mars 2003
    Messages
    2 741
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Congo-Brazzaville

    Informations professionnelles :
    Activité : Architecte de base de données
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2003
    Messages : 2 741
    Points : 4 414
    Points
    4 414
    Par défaut
    Un algo du tri fusion SVP ?

    Découvrez la FAQ de MS SQL Server.
    La chance accorde ses faveurs aux esprits avertis !

  16. #16
    Membre du Club
    Homme Profil pro
    Editeur
    Inscrit en
    Juillet 2002
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Editeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2002
    Messages : 39
    Points : 50
    Points
    50
    Par défaut
    un algo du tri fusion, avec démonstration de complexité :
    http://ndailly.free.fr/projets/tris/fusion.html

  17. #17
    Futur Membre du Club
    Inscrit en
    Janvier 2003
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Janvier 2003
    Messages : 9
    Points : 7
    Points
    7
    Par défaut
    merci
    Les fenêtres volent, mais les pingouins, eux, ont les pied sur Terre !
    A méditer.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Algo de tri
    Par Tuxico dans le forum Algorithmes et structures de données
    Réponses: 6
    Dernier message: 04/01/2006, 14h49
  2. Algo de tri par liste chainée
    Par Treuze dans le forum C
    Réponses: 3
    Dernier message: 30/12/2005, 14h05
  3. algo de tri gérant les exaequo
    Par tomy29 dans le forum Algorithmes et structures de données
    Réponses: 4
    Dernier message: 13/10/2005, 13h54
  4. quel est le meilleur algo de tri de liste ?
    Par sony351 dans le forum Algorithmes et structures de données
    Réponses: 7
    Dernier message: 24/07/2005, 02h00
  5. Algo de tri, extension
    Par Mouse dans le forum Langage SQL
    Réponses: 5
    Dernier message: 27/02/2003, 00h14

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo