39 lines
1.2 KiB
Java
39 lines
1.2 KiB
Java
|
public class Bulle{
|
||
|
|
||
|
public static <E> boolean bulle(File<E> pileRemplis, File<E> pileVide){
|
||
|
if (pileVide.isEmpty() == false){
|
||
|
throw new IllegalArgumentException("Erreur : l'argument pileVide n'est pas vide");
|
||
|
}
|
||
|
|
||
|
E max, v2;
|
||
|
boolean haveChangement = false;
|
||
|
if (pileRemplis.isEmpty() == false){
|
||
|
max = pileRemplis.dequeue();
|
||
|
while (pileRemplis.isEmpty() == false){
|
||
|
v2 = max;
|
||
|
max = pileRemplis.dequeue();
|
||
|
if (max < v2){ // changer cette ligne pour rendre les objet comparable
|
||
|
pileVide.enqueue(max);
|
||
|
max = v2;
|
||
|
haveChangement = true;
|
||
|
}
|
||
|
else{
|
||
|
pileVide.enqueue(v2);
|
||
|
}
|
||
|
}
|
||
|
pileVide.enqueue(max);
|
||
|
}
|
||
|
return haveChangement;
|
||
|
}
|
||
|
|
||
|
public static <E> File<E> tri(File<E> pile1){
|
||
|
File<E> pile2 = new File<>();
|
||
|
File<E> transition = null;
|
||
|
while (Bulle.bulle(pile1, pile2)){
|
||
|
transition = pile2;
|
||
|
pile2 = pile1;
|
||
|
pile1 = transition;
|
||
|
}
|
||
|
return pile2;
|
||
|
}
|
||
|
}
|