/* Programme: Tri.java Auteur: felipe But: montrer un codage possible aux - tri par insertion - tri par selection - tri a bulle Comment: voir les pages 423 et + dans le Savitch voir les pages 287 et + dans le Lewis & Loftus Note: ici on considere des tris en ordre croissant (de la plus petite valeur vers la plus grande) */ public class Tris { public static void main (String [] args) { int taille; // taille du tableau int [] table; // table est l'adresse d'un tableau n'existant encoe pas // analyse de la ligne de commande // note: seuls les arguments sont ranges dans la table // passee au main if (args.length != 2) { System.err.println("Usage: java Tris "); System.err.println(" avec methode parmi SELECT INSER BULLE"); System.exit(0); } taille = Integer.parseInt(args[0]); // allocation de table table = new int [taille]; // initialisation avec des valeurs entieres // entre 10 et 99 init(table,10,99); // affiche la table affiche("Avant",table); // tri selon la methode choisie if (args[1].equalsIgnoreCase("SELECT")) triParSelection(table); else if (args[1].equalsIgnoreCase("INSER")) triParInsertion(table); else if (args[1].equalsIgnoreCase("BULLE")) triABulle(table); else { System.err.println("Methode de tri " + args[1] + " inconnue"); System.exit(0); } // affiche la table affiche("Apres",table); } // methode d'initialisation d'une table // avec des valeurs entre inf et sup (incluses) static void init(int [] t, int inf, int sup) { for (int i=0; i table[i+1]) { swap(table,i,i+1); bulle = true; // on a fait une permutation } } while (bulle); } // methode de tri par selection // commentaires en cours static void triParSelection(int [] table) { int min; for (int i=0; i0) && (table[pos-1] > info); pos--) table[pos] = table[pos-1]; table[pos] = info; } } // echange (swap) les valeurs d'indice i et j dans // la table passee en argument // NOTE: on est oblige en java de passer le tableau // en argument static void swap(int [] t, int i, int j) { int temp = t[i]; t[i] = t[j]; t[j] = temp; } }