iterateur - index 1 ITI 1521 Introduction ` a...

Info iconThis preview shows pages 1–3. Sign up to view the full content.

View Full Document Right Arrow Icon

Info iconThis preview has intentionally blurred sections. Sign up to view the full version.

View Full Document Right Arrow Icon
This is the end of the preview. Sign up to access the rest of the document.

Unformatted text preview: index.pdf March 22, 2010 1 ITI 1521. Introduction ` a l’informatique II * Marcel Turcotte ´ Ecole d’ing´ enierie et de technologie de l’information Version du 22 mars 2010 R´ esum´ e – It´ erateur 1 (Partie 1) * . Ces notes de cours ont ´ et´ e con¸cues afin d’ˆ etre visualiser sur un ´ ecran d’ordinateur. 1. Excellente introduction ` a l’analyse asymptotique (complexit´ e du calcul, big-O), encapsulation, programmation orient´ ee objet, interfaces et plus. Motivation Pour une impl´ ementation (simplement) chaˆ ın´ ee de l’interface List d´ efinie comme suit, public interface List<E> { public abstract boolean add( E obj ); public abstract E get( int index ); public abstract boolean remove( E obj ); public abstract int size(); } Nous nommerons cette impl´ ementation LinkedList . Vous devez concevoir une m´ ethode pour traverser la liste, par exemple afin d’afficher toutes les valeurs. L’impl´ ementation et son temps d’ex´ ecution diff` erent selon que la m´ ethode se trouve ` a l’int´ erieur ou ` a l’ext´ erieur de la classe. ⇒ Les difficult´ es seraient les mˆ emes si la liste ´ etait doublement chaˆ ın´ ee. Exemple List<String> colors; colors = new LinkedList<String>(); colors.add( "bleu" ); colors.add( "blanc" ); colors.add( "rouge" ); colors.add( "jaune" ); colors.add( "vert" ); colors.add( "orange" ); (A) — traverser la liste de l’int´ erieur De l’int´ erieur, nous avons acc` es aux d´ etails de l’impl´ ementation, acc` es aux noeuds. Node p = head; while ( p != null ) { System.out.println( p.value ); p = p.next; } (B) — traverser la liste de l’ext´ erieur De l’ext´ erieur, nous devons utiliser E get( int pos ) . for ( int i=0; i < colors.size(); i++ ) { System.out.println( colors.get( i ) ); } Comparez la vitesse des deux impl´ ementations (int´ erieur et ext´ erieur). L’impl´ ementation de l’int´ erieur est plus rapide ou plus lente ? Les diff´ erences sont mineures ou majeures ? Temps d’ex´ ecution Voici les temps d’ex´ ecution pour des listes contenant 20 , 000 , 40 , 000 et 80 , 000 noeuds, moyenne de 5 ex´ ecutions (temps en millisecondes). # noeuds A B 20,000 2 20,644 40,000 5 94,751 80,000 12 407,059 ⇒ Pour 80 , 000 , noeuds il faut environ 6.5 minutes pour traverser la liste ` a l’aide de get( pos ) , alors qu’il suffit 12 ms pour l’autre approche. Comment expliquer cette diff´ erence ? index.pdf March 22, 2010 2 for ( int i=0; i< names.size(); i++ ) { System.out.println( names.get( i ) ); } Appel Nombre de noeuds visit´ es get( 0 ) 1 get( 1 ) 2 get( 2 ) 3 get( 3 ) 4 . . . . . ....
View Full Document

{[ snackBarMessage ]}

Page1 / 7

iterateur - index 1 ITI 1521 Introduction ` a...

This preview shows document pages 1 - 3. Sign up to view the full document.

View Full Document Right Arrow Icon
Ask a homework question - tutors are online