• Aucun résultat trouvé

cours3

N/A
N/A
Protected

Academic year: 2022

Partager "cours3"

Copied!
40
0
0

Texte intégral

(1)

I21: Introduction ` a l’algorithmique

Cours 3: Bases de l’algorithmique

Nicolas M´eloni

(2)

Parcours de tableau

De nombreux algorithmes repose sur le fait de parcourir des donn´ees dans un certain ordre.

Ecrire des algorithme de parcours de tableau est `´ a

l’algorihmique ce que les faire des gammes est `a la musique.

(3)

Parcours d´ecal´e

0 1 2 3 4 53

Utiliser une variable suppl´ementaire pour g´erer le d´ecalage Faire attention `a la fin du tableau

(4)

Parcours d´ecal´e

0 1 2 3 4 5

Utiliser une variable suppl´ementaire pour g´erer le d´ecalage Faire attention `a la fin du tableau

(5)

Parcours d´ecal´e

0 1 2 3 4 5

Utiliser une variable suppl´ementaire pour g´erer le d´ecalage Faire attention `a la fin du tableau

(6)

Parcours d´ecal´e

0 1 2 3 4 5

Utiliser une variable suppl´ementaire pour g´erer le d´ecalage Faire attention `a la fin du tableau

(7)

Parcours d´ecal´e

1 2 3 4 5 0

Utiliser une variable suppl´ementaire pour g´erer le d´ecalage Faire attention `a la fin du tableau

(8)

Parcours d´ecal´e

0 1 2 3 4 5

Utiliser une variable suppl´ementaire pour g´erer le d´ecalage Faire attention `a la fin du tableau

(9)

Parcours d´ecal´e

0 1 2 3 4 5

Utiliser une variable suppl´ementaire pour g´erer le d´ecalage Faire attention `a la fin du tableau

(10)

Parcours d´ecal´e

0 1 2 3 4 5

Utiliser une variable suppl´ementaire pour g´erer le d´ecalage Faire attention `a la fin du tableau

(11)

Parcours d´ecal´e

1 ALGORITHME P a r c o u r s D e c a l e 1 (T , d )

2 DONNEES: T t a b l e a u de t a i l l e n

3 d un e n t i e r

4 DEBUT

5 i 1

6 j d

7 TQ i n FAIRE

8 S I j = n ALORS

9 j 1

10 F S I

11 AFFICHER (T [ j ] )

12 j j +1

13 i i +1

14 FTQ

15 FIN

1 ALGORITHME P a r c o u r s D e c a l e 2 (T , d )

2 DONNEES: T t a b l e a u de t a i l l e n

3 d un e n t i e r

4 DEBUT

5 i 1

6 TQ i n FAIRE

7 j ( ( i +d−1) mod n)+1

8 AFFICHER (T [ j ] )

9 i i +1

10 FTQ

11 FIN

(12)

Parcours simple de tableau : l’addition

Probl`eme : Addition enti`ere

Entr´ee : Deux entiers donn´es sous la forme de tableau de nombres entre 0 et 9 de taillen.

Sortie : Un tableau correspondant `a la somme des deux nombres.

L’algorithme est connu depuis l’´ecole primaire.

(13)

Parcours simple de tableau : l’addition

i 4 3 2 1

N1 = 8 1 6 5

N2 = 4 6 3 7

r =

0 1 1

· N1+N2 =

1 2 8 0 2

deux variables entieres ietr

un tableau N3 initialis´e `a 0 de taille :

n+ 1

(14)

Parcours simple de tableau : l’addition

i 4 3 2 1

N1 = 8 1 6 5

N2 = 4 6 3 7

r =

0 1

1 ·

N1+N2 =

1 2 8 0

2

deux variables entieres ietr

un tableau N3 initialis´e `a 0 de taille :

n+ 1

(15)

Parcours simple de tableau : l’addition

i 4 3 2 1

N1 = 8 1 6 5

N2 = 4 6 3 7

r =

0

1 1 ·

N1+N2 =

1 2 8

0 2

deux variables entieres ietr

un tableau N3 initialis´e `a 0 de taille :

n+ 1

(16)

Parcours simple de tableau : l’addition

i 4 3 2 1

N1 = 8 1 6 5

N2 = 4 6 3 7

r = 0 1 1 ·

N1+N2 =

1 2

8 0 2

deux variables entieres ietr

un tableau N3 initialis´e `a 0 de taille :

n+ 1

(17)

Parcours simple de tableau : l’addition

i 4 3 2 1

N1 = 8 1 6 5

N2 = 4 6 3 7

r = 0 1 1 ·

N1+N2 =

1

2 8 0 2

deux variables entieres ietr

un tableau N3 initialis´e `a 0 de taille :

n+ 1

(18)

Parcours simple de tableau : l’addition

i 4 3 2 1

N1 = 8 1 6 5

N2 = 4 6 3 7

r = 0 1 1 ·

N1+N2 = 1 2 8 0 2

deux variables entieres ietr

un tableau N3 initialis´e `a 0 de taille :

n+ 1

(19)

Parcours simple de tableau : l’addition

i 4 3 2 1

N1 = 8 1 6 5

N2 = 4 6 3 7

r = 0 1 1 ·

N1+N2 = 1 2 8 0 2 deux variables entieres ietr

un tableau N3 initialis´e `a 0 de taille :

n+ 1

(20)

Parcours simple de tableau : l’addition

i 4 3 2 1

N1 = 8 1 6 5

N2 = 4 6 3 7

r = 0 1 1 ·

N1+N2 = 1 2 8 0 2 deux variables entieres ietr

un tableau N3 initialis´e `a 0 de taille : n+ 1

(21)

Parcours simple de tableau : l’addition

1 ALGORITHME A d d i t i o n ( N1 , N2 )

2 DONNEES: N1 , N2 t a b l e a u x d ’ e n t i e r s

3 de t a i l l e n

4 VARIABLES: i , r , s e n t i e r s

5 N3 t a b l e a u de t a i l l e

6 n+1 i n i t i a l i s e a 0

7 DEBUT

8 i 1

9 r 0

10 TQ i n FAIRE

11 s N1 [ i ]+N2 [ i ]+ r

12 N3 [ i ] ( s mod 1 0 )

13 r ← bs /10c

14 i i +1

15 FTQ

16 N3 [ i ] r

17 RENVOYER N3

Complexit´e : Θ(n)

(22)

Parcours simple de tableau : l’addition

1 ALGORITHME A d d i t i o n ( N1 , N2 )

2 DONNEES: N1 , N2 t a b l e a u x d ’ e n t i e r s

3 de t a i l l e n

4 VARIABLES: i , r , s e n t i e r s

5 N3 t a b l e a u de t a i l l e

6 n+1 i n i t i a l i s e a 0

7 DEBUT

8 i 1

9 r 0

10 TQ i n FAIRE

11 s N1 [ i ]+N2 [ i ]+ r

12 N3 [ i ] ( s mod 1 0 )

13 r ← bs /10c

Complexit´e : Θ(n)

(23)

Parcours de matrice zig-zag

1 2 3 4 5 6 7 8

10 11 12 13 14 15 16 17 19 20 21 22 23 24 25 26 28 29 30 31 32 33 34 35 37 38 39 40 41 42 43 44 46 47 48 49 50 51 52 53 55 56 57 58 59 60 61 62 64 65 66 67 68 69 70 71

Deux variables pour parcourir les lignes et les colonnes

Une variable pour g´erer le sens de parcours des lignes

(24)

Parcours de matrice zig-zag

1 2 3 4 5 6 7 8

10 11 12 13 14 15 16 17 19 20 21 22 23 24 25 26 28 29 30 31 32 33 34 35 37 38 39 40 41 42 43 44 46 47 48 49 50 51 52 53 55 56 57 58 59 60 61 62 64 65 66 67 68 69 70 71

Deux variables pour parcourir les lignes et les colonnes

Une variable pour g´erer le sens de parcours des lignes

(25)

Parcours de matrice zig-zag

1 2 3 4 5 6 7 8

10 11 12 13 14 15 16 17 19 20 21 22 23 24 25 26 28 29 30 31 32 33 34 35 37 38 39 40 41 42 43 44 46 47 48 49 50 51 52 53 55 56 57 58 59 60 61 62 64 65 66 67 68 69 70 71

Deux variables pour parcourir les lignes et les colonnes

Une variable pour g´erer

(26)

Parcours de matrice en zig-zag

1 ALGORITHME P a r c o u r s Z i g Z a g (M)

2 DONNEES: M m a t r i c e de t a i l l e n×m

3 DEBUT

4 i 1

5 j 1

6 d i r 1

7 TQ i n FAIRE

8 TQ ( j m) ET ( i 1 ) FAIRE

9 AFFICHER (M[ i ] [ j ] )

10 j j+ d i r

11 FTQ

12 d i r ← −d i r

(27)

Double parcours de tableaux : la multiplication

Probl`eme : Multiplication enti`ere

Entr´ee : Deux entiers donn´es sous la forme de tableau de nombres entre 0 et 9.

Sortie : Un tableau correspondant au produit des deux nombres.

L’algorithme est connu depuis l’´ecole primaire.

(28)

Double parcours de tableaux : la multiplication

i 4 3 2 1

j 4 3 2 1

N1 = 2 1 0 3

N2 = 0 6 4 7

r = ·

1 4 7 2 1

+ 0 8 4 1 2

·

+ 1 2 6 1 8

· · N1×N2 =

1 3 6 0 6 4 1

trois variables entieres i, j etr un tableau N3 initialis´e `a 0 de taille :

2n

(29)

Double parcours de tableaux : la multiplication

i 4 3 2 1

j 4 3 2 1

N1 = 2 1 0 3

N2 = 0 6 4 7

r = 2 ·

1 4 7 2

1

+ 0 8 4 1 2

·

+ 1 2 6 1 8

· · N1×N2 =

1 3 6 0 6 4 1

trois variables entieres i, j etr un tableau N3 initialis´e `a 0 de taille :

2n

(30)

Double parcours de tableaux : la multiplication

i 4 3 2 1

j 4 3 2 1

N1 = 2 1 0 3

N2 = 0 6 4 7

r = 0 2 ·

1 4 7

2 1

+ 0 8 4 1 2

·

+ 1 2 6 1 8

· · N1×N2 =

1 3 6 0 6 4 1

trois variables entieres i, j etr un tableau N3 initialis´e `a 0 de taille :

2n

(31)

Double parcours de tableaux : la multiplication

i 4 3 2 1

j 4 3 2 1

N1 = 2 1 0 3

N2 = 0 6 4 7

r = 0 0 2 ·

1 4

7 2 1

+ 0 8 4 1 2

·

+ 1 2 6 1 8

· · N1×N2 =

1 3 6 0 6 4 1

trois variables entieres i, j etr un tableau N3 initialis´e `a 0 de taille :

2n

(32)

Double parcours de tableaux : la multiplication

i 4 3 2 1

j 4 3 2 1

N1 = 2 1 0 3

N2 = 0 6 4 7

r = 1 0 0 2 ·

1 4 7 2 1

+ 0 8 4 1 2

·

+ 1 2 6 1 8

· · N1×N2 =

1 3 6 0 6 4 1

trois variables entieres i, j etr un tableau N3 initialis´e `a 0 de taille :

2n

(33)

Double parcours de tableaux : la multiplication

i 4 3 2 1

j 4 3 2 1

N1 = 2 1 0 3

N2 = 0 6 4 7

r = 1 · ·

1 4 7 2 1

+ 0 8 4 1

2 ·

+ 1 2 6 1 8

· · N1×N2 =

1 3 6 0 6 4 1

trois variables entieres i, j etr un tableau N3 initialis´e `a 0 de taille :

2n

(34)

Double parcours de tableaux : la multiplication

i 4 3 2 1

j 4 3 2 1

N1 = 2 1 0 3

N2 = 0 6 4 7

r = 0 1 · ·

1 4 7 2 1

+ 0 8 4

1 2 ·

+ 1 2 6 1 8

· · N1×N2 =

1 3 6 0 6 4 1

trois variables entieres i, j etr un tableau N3 initialis´e `a 0 de taille :

2n

(35)

Double parcours de tableaux : la multiplication

i 4 3 2 1

j 4 3 2 1

N1 = 2 1 0 3

N2 = 0 6 4 7

r = 0 0 1 · ·

1 4 7 2 1

+ 0 8

4 1 2 ·

+ 1 2 6 1 8

· · N1×N2 =

1 3 6 0 6 4 1

trois variables entieres i, j etr un tableau N3 initialis´e `a 0 de taille :

2n

(36)

Double parcours de tableaux : la multiplication

i 4 3 2 1

j 4 3 2 1

N1 = 2 1 0 3

N2 = 0 6 4 7

r = 0 0 0 1 · ·

1 4 7 2 1

+ 0 8 4 1 2 ·

+ 1 2 6 1 8

· · N1×N2 =

1 3 6 0 6 4 1

trois variables entieres i, j etr un tableau N3 initialis´e `a 0 de taille :

2n

(37)

Double parcours de tableaux : la multiplication

i 4 3 2 1

j 4 3 2 1

N1 = 2 1 0 3

N2 = 0 6 4 7

r = 1 0 0 1 · · ·

1 4 7 2 1

+ 0 8 4 1 2 ·

+ 1 2 6 1 8 · ·

N1×N2 =

1 3 6 0 6 4 1

trois variables entieres i, j etr un tableau N3 initialis´e `a 0 de taille :

2n

(38)

Double parcours de tableaux : la multiplication

i 4 3 2 1

j 4 3 2 1

N1 = 2 1 0 3

N2 = 0 6 4 7

r = 1 · · ·

1 4 7 2 1

+ 0 8 4 1 2 ·

+ 1 2 6 1 8 · ·

N1×N2 = 1 3 6 0 6 4 1

trois variables entieres i, j etr un tableau N3 initialis´e `a 0 de taille :

2n

(39)

Double parcours de tableaux : la multiplication

i 4 3 2 1

j 4 3 2 1

N1 = 2 1 0 3

N2 = 0 6 4 7

r = 1 · · ·

1 4 7 2 1

+ 0 8 4 1 2 ·

+ 1 2 6 1 8 · ·

N1×N2 = 1 3 6 0 6 4 1 trois variables entieres i, j etr

un tableau N3 initialis´e `a 0 de taille : 2n

(40)

Double parcours de tableaux : la multiplication

1 ALGORITHME M u l t i p l i c a t i o n ( N1 , N2 )

2 DONNEES: N1 , N2 t a b l e a u x d ’ e n t i e r s

3 de t a i l l e n

4 VARIABLES: i , j , r , p e n t i e r s

5 N3 t a b l e a u de t a i l l e

6 n+1 i n i t i a l i s e a 0

7 DEBUT

8 j 1

9 TQ j n FAIRE

10 i , r 1 , 0

11 TQ i n FAIRE

12 p N3 [ i +j−1] + N1 [ i ]N2 [ j ]+ r

13 N3 [ i +j−1] ( p mod 1 0 )

14 r ← bp /10c

Complexit´e : Θ(n2)

Références

Documents relatifs

Mode de contamination Voie directe (essentiellement au cours de relations sexuelles non protégées mais aussi par le sang et de la mère à l’enfant au cours de l’accouchement et de

[r]

Cela signifie entre les lignes que, modulo un certain nombre pair n, tous les nombres premiers unit´ es de n ne peuvent ˆ etre simultan´ ement tous des r´ esidus quadratiques de n

• l’article 78 des Recherches Arithm´ etiques : Le th´ eor` eme de Wilson peut ˆ etre rendu plus g´ en´ eral en l’´ enon¸ cant comme il suit : le produit de tous les

Bruno joue à un jeu où l'on peut gagner ou perdre des points à la n de chaque partie, ce qui donne son niveau par rapport à ses adversaires.. Chaque samedi il joue deux parties de

Problème 2 : Étant donné deux nombres dont la somme des carrés est constante, comment faut-il les choisir pour que leur produit soit maximal ?.

Les deux op´ erations de base utilis´ ee utilis´ ees pour inverser une matrice sont l’´ echange de deux lignes et l’ajout une ligne ` a une autre.. Ecrivons

BCPST R´ esolution de syst` emes et inversions de matrice 2016-2017 Le but de ce TP est de finir le dernier TP en ´ ecrivant l’ensemble des algorithmes sur les matrices vus dans