sae fini les gars

This commit is contained in:
AlgaLaptop
2026-01-07 19:27:03 +01:00
parent c8556d469a
commit bf03d0cf8d
137 changed files with 13871 additions and 1525 deletions
@@ -1,19 +1,40 @@
package fr.iutfbleau.sae.mhuffman;
import java.util.Comparator;
import java.util.Map;
/**
*
* Comparateur utilisé lors de la génération des codes canoniques.
* Il permet de trier des couples (symbole, code Huffman sous forme de chaîne).
*
* Le tri se fait dans cet ordre :
* 1. Par longueur du code (du plus court au plus long)
* 2. En cas d'égalité, par ordre croissant des symboles
*/
public class ComparateurCanonique implements Comparator<Map.Entry<Integer, String>> {
/**
* Compare deux entrées contenant un symbole et son code Huffman.
*
* @param entree1 première entrée à comparer
* @param entree2 deuxième entrée à comparer
* @return un entier négatif si entree1 doit venir avant entree2,
* positif si elle doit venir après,
* et zéro si elles sont équivalentes selon le tri.
*/
@Override
public int compare(Map.Entry<Integer, String> entree1,Map.Entry<Integer, String> entree2) {
public int compare(Map.Entry<Integer, String> entree1, Map.Entry<Integer, String> entree2) {
int longueur1 = entree1.getValue().length();
int longueur2 = entree2.getValue().length();
// On compare d'abord la longueur des codes
if (longueur1 != longueur2) {
return longueur1 - longueur2;
}
// Si les longueurs sont identiques, on trie par symbole
return entree1.getKey() - entree2.getKey();
}
}
}