Algorithmes divers sur UNE liste

Parcours des éléments d'une liste d'entiers

/* Simple parcours des éléments du tableau T pour affichage par exemple*/
Répéter pour i allant de 0 à longueur - 1
        action sur T[i]
fin_de_répéter

Calcul et affichage de la somme et de la moyenne des éléments d'une liste d'entiers

somme <== T[0]
Répéter pour i allant de 1à longueur-1

        somme <== somme + T[i]

fin_de_répéter
Ecrire ("la somme est :", somme)
Ecrire ("la moyenne est :", somme/longueur)

Inversion en copie d'une liste d'entiers

/* Construit l2 = éléments de l1 (de longueur long1) mais en sens inverse */
j <== long1 - 1
Répéter pour i allant de 0 à long1-1
        l2[j] <== l1[i]

        j <== j -1

fin_de_répéter
long2 <== long1

Inversion en place d'une liste d'entiers

/* Inverse les éléments de l1 (de longueur long1) dans l1 elle même */

Répéter pour i allant de 0 à (long1 / 2)-1

        tmp <== l1[i]

        l1[i] <== l1[long1-1-i]

        l1[long1-1-i] <== tmp
fin_de_répéter

Suppression en copie des éléments pairs d'une liste d'entiers

/* Supprime les éléments de l1 (de longueur long1) dans une nouvelle liste l2 de longeur long2 */

j <== 0
Répéter pour i allant de 0 à long1 -1
        si l1[i] non divisible par 2
        alors l2[j] <== l1[i]

                j <== j + 1

fin_de_répéter
long2 <== j

Suppression en place des éléments pairs d'une liste d'entiers

/* Supprime les éléments de l1 (de longueur long1) dans l1 elle même */

i <== 0
Tant que (i <= long1-1)
        si l1[i] divisible par 2
        alors /* décalage des éléments "à droite" de l'élément pair */

                Répéter pour j allant de i à long1-2

                       l1[j] <== l1[j+1]

                fin_de_répéter

                long1 <== long1 - 1
        sinon i <== i + 1
fin_tant_que

Nombre maximum d'occurence dans une liste d'entiers inférieurs à 100

Complexité : O(n) comparaisons pour la recherche du maximum

/* Initialisation du tableau occurence */
Répéter pour i allant de 0 à 99
        occurence[i] <== 0
fin_de_répéter
/* Calcul des occurences de chaque entier possible de la liste */
Répéter pour i allant de 0 à longueur

        occurence[tab[i]] <= occurence[tab[i]] + 1

fin_de_répéter

/* Recherche du maximum */
max <== occurence[0]
Répéter pour i allant de 1 à 99
        si occurence[i] > max
        alors max <== occurence[i]
                reponse <== i
fin_de_répéter
rendre reponse