Package

Source Code of TriBulle

import inf231v.sequences.Observateur;

public class TriBulle {
 
  SequenceContigueLongueurExplicite seq;
  Observateur obs = null;
  int nbComp = 0;
  int nbModif = 0;
  /**
   * construit un TriBulle observable prenant ses données dans le fichier "data"
   *
   */
  public TriBulle () {
    this("data", true);
  }
 
  /**
   * construit un TriBulle  prenant ses données dans "data".
   * Ce tri est observable ssi observable est vrai.
   *
   */ 
  public TriBulle (boolean observable) {
    this("data", observable);
  }
 
  /**
   * construit un TriBulle  prenant ses données dans filename.
   * Ce tri est observable ssi observable est vrai.
   *
   */ 
  public TriBulle (String filename, boolean observable) {
    seq = new SequenceContigueLongueurExplicite(filename);
    if (observable) {
      obs = new Observateur("Tri par sélection du minimum");
    }
  }
 
  public TriBulle (int l, boolean observable) {
    seq = new SequenceContigueLongueurExplicite(l);
    if (observable) {
      obs = new Observateur("Tri par sélection du minimum", 3);
    }
  }
 
        /**
         * Réaliser la méthode trier() suivant l'algorithme de tri bulle
         * Ajouter l'affichage de la séquence grâce à l'observateur obs
         * Méthodes dessineSequence(seq.t, seq.l)
         */
  public void trier() {
    if (obs != null) {
      obs.dessineSequence(seq.t, seq.l);   
    }
                // A COMPLETER
                int i = seq.l;
    int j = 0;
    int tmp;
    while(i > 1){
      j=0;
      while(j < i-1){
        nbComp++;
        if(seq.t[j] > seq.t[j+1]){
          nbModif++;
          tmp = seq.t[j];
          seq.t[j] = seq.t[j+1];
          seq.t[j+1] = tmp;
        }
        j++;
      }
      i--;
      if (obs != null) {
        obs.dessineSequence(seq.t, seq.l);
        obs.affiche("i = " + i);
        obs.affiche("nbComp = " + nbComp);
        obs.affiche("nbModif = " + nbModif);
        obs.dormir();
      }
    }
  }
 
  /**
   * @param args
   */
  public static void main(String[] args) {
    // TODO Auto-generated method stub
    TriBulle trib;
    //trib.seq.afficher();
    //trib.trier();
    //System.out.println("---------");
    //trib.seq.afficher();
    int i =0;
    double sommeComp = 0;
    double sommeModif = 0;
    while(i != 100){
      trib = new TriBulle(100, false);
      trib.trier();
      sommeComp += trib.nbComp;
      sommeModif += trib.nbModif;
      System.out.println("Tri numero  "+ i +" : nbComp = " + trib.nbComp + ", nbModif = " + trib.nbModif);
      i++;
    }
    System.out.println("Moyenne des 100 tries : moyComp = "+(sommeComp/100.)+", moyModif = "+(sommeModif/100.));
  }

}
TOP

Related Classes of TriBulle

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.