Title: Quelques Rappels
1Quelques Rappels
- JAVA
- 2ème année EURINSA
2La récursivité
- Une méthode récursive sappelle elle-même
- Technique naturelle de décomposition dun
problème en problèmes plus simples - pour calculer n!, je calcule (n - 1)! (plus
simple) - puis je calcule n (n - 1)!
- Principes de base dune méthode récursive
- Doit obligatoirement contenir un TEST DARRÊT
- Doit contenir un APPEL RECURSIF sur des données
de taille plus petites
3La récursivité exemple
- int tri(int t)
- System.out.print ("tri de ")
- afficheTableau(t)
- System.out.println ()
-
- if (t.length gt 1)
- int milieut.length / 2
- int t1 sousTab(t, 0, milieu)
- int t2 sousTab(t, milieu, t.length)
- return fusion (tri(t1), tri(t2)) //APPEL
RECURSIF -
- else
- return t //TEST DARRÊT
4Tri Fusion sur un exemple
- tri(1, 8, 3, 2, 7) milieu5/22
- tri(1, 8) tri(3, 2, 7)
milieu3/21 - tri(1) tri(8) tri(3) tri(2,
7) milieu2/21 - return 1 return 8 return 3 tri(2)
tri(7) - return 2 return 7
- Résultats 1, 2, 3, 7, 8
5Fusion
int fusion(int t1, int t2) int tt
new int t1.lengtht2.length int p0, p10,
p20 while (p1 lt t1.length p2 lt t2.length)
if (t1p1 lt t2p2) ttp
t1p1 else ttp t2p2
- //finir t1 ou t2 si nécessaire
- while (p1 lt t1.length)
- ttp t1p1
- while (p2 lt t2.length)
- ttp t2p2
- return tt
-
-
6Pile des appels
int tri(int t) if (t.length gt 1)
return fusion (tri(t1), tri(t2))
else return t
Affichage
tri de 1, 8, 3, 2, 7
1
1
- tri(1, 8, 3, 2, 7)
- tri(1, 8) tri(3, 2, 7)
- tri(1) tri(8) tri(3) tri(2,
7) tri(2) tri(7) -
tri de 1, 8
tri de 1
2
3
Pile des appels
2
3
tri de 8
tri(8)
tri(7)
7
tri de 3, 2, 7
7
4
5
6
tri de 3
4
5
6
tri(2, 7)
fusion(4, 5)
fusion(8, 9)
tri de 2, 7
8
9
8
9
tri(3, 2, 7)
fusion(6, 7)
tri de 2
fusion(2, 3)
tri de 7
7(No Transcript)
8La classe fournit une interface à travers les
méthodes get et set
9(No Transcript)
10(No Transcript)
11Polymorphisme le type réel d1 objet est
déterminé à lexécution instanceof teste le
type réel dun objet Finalize() méthode
exécutée avant la destruction dun objet