Les Snippets

Connexion

Tri de nombres

Niveau requis pour utiliser/comprendre cette source : 1 ( Débutant )
Créé le 18/07/2007 17:00:30 et initié par JMO [Liste]
Date de mise à jour : 11/12/2007 11:56:39
Vue : 9647
Catégorie(s) : Algorithme
Langage sélectionné : C++
Langages dispo pour ce code :
- VBScript
- Javascript
- C, C++
- VB 2005, VB.NET 1.x
- C# 2.x
- VB6, VBA
- ObjectiveCaml
- ObjectiveCaml
- Voir tous les langages pour ce code snippet



Langage : C , C++
Date ajout : 25/07/2007
Posté par coucou747 [Liste]

void sortliste1(int unsigned *liste){
    //tri à bulles
    int i, j, a;
    for (i=0;i<L-1;i++){
        for (j=i+1;j<L;j++){
            if (liste[i]>liste[j]){
                a=liste[j];
                liste[j]=liste[i];
                liste[i]=a;
            }
        }
    }
}
void sortliste2(int unsigned *l1){
    //tri fusion
    int i, j, k, l, m, n, o=1;
    int unsigned l2[L];
    int unsigned *l3;
    int unsigned *l4;
    l3=l1;
    l4=l2;
    printf("Debut du tri...\n");
    for (i=0;i<L;i++){
        l2[i]=0;
    }
    for (i=2;i<L;i*=2){
        //la taille des parties à trier
        for (j=0;j<L;j+=i){
            //on parcourt les premiers éléments de nouvelle chaque parties.
            l=0;
            m=0;
            n=(i+j>L)?L-i:i;
            for (k=0;k<n;k++){
                if (m==o){
                    l4[j+k]=l3[j+l+o];
                    l++;
                }else if ( l==o ){
                    l4[j+k]=l3[j+m];
                    m++;
                }else if (l3[j+m]<l3[j+l+o]){
                    l4[j+k]=l3[j+m];
                    m++;
                }else{
                    l4[j+k]=l3[j+l+o];
                    l++;
                }
            }
        }
        if (l3==l2){
            l3=l1;
            l4=l2;
        }else{
            l3=l2;
            l4=l1;
        }
        o=i;
    }
    l=0;
    m=0;
    for (k=0;k<L;k++){
        if (m==o){
            l4[k]=l3[l+o];
            l++;
        }else if ( l==o ){
            l4[k]=l3[m];
            m++;
        }else if (l3[m]<l3[l+o]){
            l4[k]=l3[m];
            m++;
        }else{
            l4[k]=l3[l+o];
            l++;
        }
    }
    if (l4==l2){
        for (k=0;k<L;k++){
            l1[k]=l4[k];
        }
    }
}
void sortliste4(int unsigned *l1){
    //Cet algo de tri est l'algo de tri par insersion.
    int i, j, k, l;
    for (i=1;i<L;i++){
        l=l1[i];
        for (j=0;j<i;j++){
            if (l1[i]<l1[j]){
                for (k=i-1;k>j;k--){
                    l1[k+1]=l1[k];
                }
                l1[j]=l;
                break;
            }
        }
    }
}

Remarque :
voici trois algos de tris : tri fusion, tri a bulles, et tri par insertions.
si liste est un int unsigned [taille] alors :
sortliste1(liste);
fonctionne simplement

Snippets en rapport avec : Tri, Nombre, Croissant, Décroisant



Codes sources en rapport avec : Tri, Nombre, Croissant, Décroisant

{Visual Basic, VB6, VB.NET, VB 2005} TRI COMPLEXE SUCCESSIF MULTI OPTION AVEC UNE MSHFLEXGRID
Tri complexe, rapide et simple à l'aide d'une MshFlexGrid. 4 colonnes successives possible : par exe...

{PHP} TRIE ET FILTRE UNIVERSEL DE REQUÊTES DANS UN FORMULAIRE À PARTIR DE SES CONTRÔLES
Voici un script, composé d'un fichier d'inclusion et d'une page de déclaration de variables, qui per...

{PDA / PocketPC} TRI D'UN TABLEAU DE VALEUR DANS L'ORDRE CROISSANT
Petit bout de code sans aucune prétention, pour que le site possède des algorithmes types, au mi...

{Visual Basic, VB6, VB.NET, VB 2005} CHIFFRE EN LETTRE FONCTION
Une petite fonction simlpe pour transformer un chiffre en lettre. Exemple: "15193" >> dix ...

{C# / C#.NET} LISTVIEW : TRI MONO OU MULTICOLONNES PROGRAMMÉ OU PAR CLICK DE COLONNE TENANT COMPTE DU TYPE DE DONNÉES À TRIER
Ayant pas mal cherché des sources pour faire des tris de colonnes de ListView, j'ai réalisé mon gest...

{Visual Basic, VB6, VB.NET, VB 2005} LISTE DE FICHIERS SUR UN DISQUE EN VB6
Ce programme permet de lister une arborescence de répertoires et de fichiers. Le résultat est mis ...

{PHP} FONCTION D'AFFICHAGE DE DONNÉES MYSQL
Cette fonction permet d'afficher des données provenant d'une ou plusieurs tables MySQL avec, si néce...

{PHP} COMPTER LE NOMBRE DE FICHIERS DANS UN DOSSIER
Après pas mal de recherche, je n'ai pas réellement trouvé un code qui me convenait. J'ai donc trouvé...

{Delphi} DÉCOUVRIR LE NOMBRE MYSTÈRE
Petit jeu tout simple développé par mes soins, il faut découvrir un nombre entier compris entre 1 et...

{Visual Basic, VB6, VB.NET, VB 2005} VACHE TAUREAU BY CHIHAOUI
Salut ! bref, un jeu populaire Vache Taureau! l'Ordi génère un nombre aléatoire et l'utilisateur ...