Les membres ayant 30 points peuvent parler sur les canaux annonces, projets et hs du chat.
La shoutbox n'est pas chargée par défaut pour des raisons de performances. Cliquez pour charger.

Forum Casio - Autres questions


Index du Forum » Autres questions » Ordonner des tableaux en C
Tsuneo Hors ligne Membre Points: 973 Défis: 51 Message

Ordonner des tableaux en C

Posté le 22/08/2012 15:34

Bonjour !
Je suis le tutoriel sur le C du Site du Zéro, je viens de finir le passage sur les tableaux.
L'exercice 5 demande d'ordonner un tableau dans l'ordre croissant. Voilà ce que j'ai fait, le code marche très bien, je voulais juste savoir si quelqu'un aurait un code plus court, plus rapide, et avoir vos avis sur ce code

void ordonnerTableau(int tableau[], int tailleTableau)
{
    int i, j, valeurTableau;
    for (i = 0; i < tailleTableau; i++)
    {
        for (j = 0; j < tailleTableau - 1; j++)
        {
            if (tableau[j] > tableau [j+1])
            {
            valeurTableau = tableau[j];
            tableau[j] = tableau[j+1];
            tableau[j+1] = valeurTableau;
            }
        }
    }
}


Merci d'avance !


Vebveb Hors ligne Membre Points: 797 Défis: 14 Message

Citer : Posté le 22/08/2012 15:54 | #


Renseigne toi sur les différentes méthodes de tri: tri par sélection, tri par insertion, tri bulle, tri rapide, tri fusion.

Pour juger de la rapidité d'un code, on parle de complexité. Cela correspond à une loi reprenant ce modèle:
Si le temps d'exécution d'une fonction dépend de n et que sa complexité est de O(n²), cela signifie qu'il existe un coefficient k et un n0 tel que:
pour tout n>n0, temps d'execution < k * n²

On peut ainsi comparer la vitesse d'exécution des fonctions.

Ton code a une complexité en O(tailleTableau²) alors que le tri fusion a une complexité en O(tailleTableau * ln(tailleTableau) )

Cela signifie que sur un très grand tableau, le tri fusion sera bien plus rapide car ln(tailleTableau) sera bien inférieur à tailleTableau.


Tsuneo Hors ligne Membre Points: 973 Défis: 51 Message

Citer : Posté le 22/08/2012 16:29 | #


Oula, j'ai pas tout compris là

J'ai juste compris que le tri fusion serait plus rapide que le mien...

En fait, j'ai trouvé ce code tout seul et je voulais seulement savoir s'il était efficace
Apparemment ça s'appelle un tri à bulle, je viens de voir ça sur le net !

En tout cas merci de la réponse rapide

Calculatrices : Graph 35+ USB tweakée et Classpad 330
Suivez moi et mon humour dévastateur ici focliquéla
Pierrotll Hors ligne Ancien administrateur Points: 5488 Défis: 41 Message

Citer : Posté le 23/08/2012 19:36 | #


Ton algo est très simple, mais aussi très lourd.
Si tu t'intéresses aux algorithmes de tri, regarde la page wikipedia qui n'est pas trop mal et apporte d'intéressantes comparaisons. Les calculs de complexité dont a parlé Vebveb y sont un peu plus détaillé.
Louloux Hors ligne Ancien administrateur Points: 7035 Défis: 61 Message

Citer : Posté le 25/08/2012 21:22 | #


Je me suis intéressé aux algos de tri après le concours Prologin où ils nous en ont un peu parlé. Ce qui m'étonne cr'est que certaines méthodes sont plus lentes dans tous les cas...
Pigeonv Hors ligne Membre Points: 106 Défis: 8 Message

Citer : Posté le 04/09/2012 19:12 | #


Le tri à bulle (utilisé ici) est le plus lent...

LienAjouter une imageAjouter une vidéoAjouter un lien vers un profilAjouter du codeCiterAjouter un spoiler(texte affichable/masquable par un clic)Ajouter une barre de progressionItaliqueGrasSoulignéAfficher du texte barréCentréJustifiéPlus petitPlus grandPlus de smileys !
Cliquez pour épingler Cliquez pour détacher Cliquez pour fermer
Alignement de l'image: Redimensionnement de l'image (en pixel):
Afficher la liste des membres
:bow: :cool: :good: :love: ^^
:omg: :fusil: :aie: :argh: :mdr:
:boulet2: :thx: :champ: :whistle: :bounce:
valider
 :)  ;)  :D  :p
 :lol:  8)  :(  :@
 0_0  :oops:  :grr:  :E
 :O  :sry:  :mmm:  :waza:
 :'(  :here:  ^^  >:)

Σ π θ ± α β γ δ Δ σ λ
Veuillez donner la réponse en chiffre
Vous devez activer le Javascript dans votre navigateur pour pouvoir valider ce formulaire.

Si vous n'avez pas volontairement désactivé cette fonctionnalité de votre navigateur, il s'agit probablement d'un bug : contactez l'équipe de Planète Casio.

Planète Casio v4.3 © créé par Neuronix et Muelsaco 2004 - 2024 | Il y a 316 connectés | Nous contacter | Qui sommes-nous ? | Licences et remerciements

Planète Casio est un site communautaire non affilié à Casio. Toute reproduction de Planète Casio, même partielle, est interdite.
Les programmes et autres publications présentes sur Planète Casio restent la propriété de leurs auteurs et peuvent être soumis à des licences ou copyrights.
CASIO est une marque déposée par CASIO Computer Co., Ltd