Exo Map<Category, Set<Book>>
Méthode classique : boucle imbriquée
# cats M
# books N
book.getCat() == cat ?
Complexité = O(NM)
# books N
Meilleure méthode : utiliser une HashMap en JAVA
# cats M
cat → { }
Cat
Set<Book>
Map<Cat,Set<Book>>
Une Catégorie n'est pas
capable de contenir les
livres.
Il faut passer par un
Set<Book> qui lui est
associé.
pour chaque book
1. tempCat ← book.getCat()
2. tempCat.add(book)
2. tempCat
{ }
book
.add(book)
Intérêt :
l'étape cat → { } est de complexité
log M
Complexité = O(N log M)
HashMap
✓
recherche binaire (de complexité
M
)
plus efficace qu'une recherche linéaire
(de complexité
log M
)
M
log M
1
New frame
New frame
New frame
New frame