constante N : entier <- ... { nombre de chaines } constante M : entier <- ... { longueur des chaines } { Methode de comparaison de deux chaines } { de caracteres vis a vis } { de l'ordre alphabetique } { Valeur entiere retournee: } { 0 si chaines egales } { -1 si la premiere chaine est inferieure } { a la seconde } { 1 si la premiere chaine est superieure } { a la seconde } entier fonction ordre(s1,s2) Donnees s1 : chaine s2 : chaine Locales res : entier t1 : Tableau [M] de caracteres t2 : Tableau [M] de caracteres i : entier go : booleen t1 <- s1.toCharArray() t2 <- s2.toCharArray() go <- vrai res <- 0 i <- 0 tantque go et ( i < M ) faire si t1[i] < t2[i] alors go <- faux res <- -1 sinon si t1[i] > t2[i] alors go <- false res <- 1 fsi fsi i <- i+1 fait retourner res fin fonction { Methode de tri a bulle d'un tableau } { de N chaines de M caracteres } { par ordre alphabetique } action triBulleTableauDeChaines(t) Donnees / Resultat t : Tableau [N] de chaine Locales i : entier j : entier aux : chaine permutation : booleen ne : entier np : entier cpt : entier ne <- N-1 np <- N-1 cpt <- 0 faire cpt <- cpt+1 permutation <- faux pour j de 0 à np-1 faire si ordre(t[j],t[j+1]) > 0 alors aux <- t[j] t[j] <- t[j+1] t[j+1] <- aux permutation <- vrai fsi np <- np-1 fait tantque permutation et ( cpt < ne ) fin action