Vous êtes sur la page 1sur 29

ALGORITHMIQUE

LES TABLEAUX
Par : Zineb REBBANI
Introduction
Le long de tout les chapitres précédents, nous avons utilisé, que des variables
qui prennent un emplacement unique dans la mémoire de types standard.

Dans de nombreuses applications, on souhaite regrouper plusieurs données


dans une seule variable dans un ordre particulier, mais dont le type n’est pas
standard.

Exemple :

Considérons 30 valeurs réelles(les notes des élèves d’une classe par exemple),
pour loger ces valeurs de même type, même nature et qui vont subir, sans
doute, le même traitement, il faut déclarer 30 variables différentes a,b,c…etc.
« dispersées » dans un ordre quelconque dans la mémoire de l’ordinateur.

2
Introduction
Les inconvénients de cette méthode sont :
-Difficulté d’accéder rapidement à la note d’un élève donné (le 5éme par
exemple)
-Pour lire ces 30 notes sur le clavier, il faut 30 lignes, minimum, de
programmation(lecture de données) ce qui va rendre les algorithmes
très long et parfois impossibles.
-La même chose pour les opérations d’écriture de ces données sur
l’écran,
-…etc

3
Introduction
Solution:

On a la possibilité de réunir toutes ces valeurs dans une seule variable dite
structurée et composée de 30 cases juxtaposées et mêmes « dimensions » car
elles vont recevoir des données de même type.

 Cette variable s’appelle : un tableau


Qu’on peut présenter par le schéma suivant :

T[1] T[2] T[3] T[4] T[4] ……. T28] T29] T[30]

15 12.5 14.25 10.25 ……. 11.5 18 15.25

30valeurs réelles

4
Définition
Un tableau est un ensemble d'éléments de même type désignés par un
identificateur unique. La détermination de la position et de la valeur
d’un élément donné dans un tableau se fait à l’aide d’une variable
entière appelée : indice.

La déclaration d'un tableau s'effectue en précisant le type de ses


éléments et sa dimension (le nombre de ses éléments)

variable tableau identificateur[dimension] : type

Exemple : variable tableau notes[30] : réel

Ainsi, Il est possible de définir des tableaux tout types : entiers – réels – des
chaînes de caractères - des booléens.

5
Remarques
L'accès à un élément du tableau se fait au moyen de l'indice. Par exemple,
notes[i] donne la valeur de l'élément i du tableau notes
Selon les langages, le premier indice du tableau est soit 0, soit 1. Le plus
souvent c'est 0 (c'est ce qu'on va adopter en pseudo-code). Dans ce cas,
notes[i] désigne l'élément i+1 du tableau notes
Il est possible de déclarer un tableau sans préciser au départ sa dimension.
Cette précision est faite ultérieurement .

• Par exemple, quand on déclare un tableau comme paramètre d'une procédure, on


peut ne préciser sa dimension qu'au moment de l'appel
• En tous cas, un tableau est inutilisable tant qu’on n’a pas précisé le nombre de ses
éléments
Avantage des tableaux : le traitement simple des données stockées à l’aide
des boucles.

6
Exemple 1
Enoncé : Calculez à l’aide des tableaux le nombre des étudiants ayant
obtenu une note supérieures à 10 :

Variables i ,nbre : entier


tableau notes[30] : réel
Début
nbre ← 0
Pour i allant de 0 à 29
Si (notes[i] >10) alors
nbre ←nbre+1
FinSi
FinPour
écrire ("le nombre de notes
supérieures à 10 est : ", nbre)
Fin

7
Tableaux : saisie et affichage

Remplir tableau:

Variables i : entier
tableau notes[30] : réel
Pour i allant de 0 à n-1
écrire ("Saisie de l'élément ", i + 1)
lire (T[i] )
FinPour
Fin

Afficher tableau
Variables i : entier
tableau notes[30] : réel
Pour i allant de 0 à n-1
écrire ("T[",i, "] =", T[i])
FinPour
Fin

8
Les tableaux à deux dimensions

Tous les langages de programmation permettent de déclarer des


tableaux à deux dimensions dans lesquels les valeurs sont repérés par
deux indices tel que ce qui est utilisé dans les matrices .

La déclaration se fait ainsi :

variable tableau identificateur[dimension1] [dimension2] : type

Exemple : L’écriture d’une matrice de réels à 3 lignes et 4 colonnes


s’écrit comme suit :

variable tableau A[3][4] : réel

A[i][j] sert à accéder à l’élément de l’intersection entre la


ligne i et la colonne j.

9
Exemples d’applications

Ecrire les algorithme pour résoudre :

 La saisie des éléments d’une matrice.

 Affichage des éléments d’une matrice.

 La somme entre deux matrices.

10
Exemples : lecture d'une matrice

Algorithme SaisieMatrice
Var
n ,m : entier
i,j : entier
tableau A : réel
Début
Pour i allant de 0 à n-1
écrire ("saisie de la ligne ", i + 1)
Pour j allant de 0 à m-1
écrire ("Entrez l'élément de la ligne ", i + 1, " et de la colonne ", j+1)
lire (A[i][j])
FinPour
FinPour
Fin

11
Exemples : affichage d'une matrice

algorithme AfficheMatrice
Var
n ,m, i, j: entier
tableau A : réel
Début
Pour i allant de 0 à n-1
Pour j allant de 0 à m-1
écrire ("A[",i, "] [",j,"]=", A[i][j])
FinPour
FinPour
Fin

12
Exemples : somme de deux matrices

Algorithme SommeMatrices
Var
n, m, i, j : entier
tableau A, B ,C: réel
Début
Pour i allant de 0 à n-1
Pour j allant de 0 à m-1
C[i][j] ← A[i][j]+B[i][j]
FinPour
FinPour
Fin

13
Recherche dans un tableau/ recherche
séquentielle
Recherche de la valeur x dans un tableau T de N éléments :

Variables i: entier, Trouvé : booléen



i←0 , Trouvé ← Faux
TantQue (i < N) ET (Trouvé=Faux)
Si (T[i]=x) alors
Trouvé ← Vrai
Sinon
i←i+1
FinSi
FinTantQue
Si Trouvé alors // c'est équivalent à écrire Si Trouvé=Vrai alors
écrire ("x appartient au tableau")
Sinon écrire ("x n'appartient pas au tableau")
FinSi

14
Recherche dans un tableau/ recherche
dichotomique

 Dans le cas où le tableau est ordonné, on peut améliorer l'efficacité


de la recherche en utilisant la méthode de recherche dichotomique.

Principe : diviser par 2 le nombre d'éléments dans lesquels on cherche


la valeur x à chaque étape de la recherche. Pour cela on compare x avec
T[milieu] :

 Si x < T[milieu], il suffit de chercher x dans la 1ère moitié du tableau


entre (T[0] et T[milieu-1])

 Si x > T[milieu], il suffit de chercher x dans la 2ème moitié du tableau


entre (T[milieu+1] et T[N-1])

15
Recherche dans un tableau/ recherche
dichotomique
L’algorithme de la recherche dichotomique :

inf←0 , sup←N-1, Trouvé ← Faux


TantQue (inf <=sup) ET (Trouvé=Faux)
milieu←(inf+sup)div2
Si (x=T[milieu]) alors
Trouvé ← Vrai
SinonSi (x>T[milieu]) alors
inf←milieu+1
Sinon sup←milieu-1
FinSi
FinSi
FinTantQue
Si Trouvé alors écrire ("x appartient au tableau")
Sinon écrire ("x n'appartient pas au tableau")
FinSi
16
Recherche dans un tableau/ recherche
dichotomique
Exemple d’éxécution :

 Considérons le tableau T : 4 6 10 15 17 18 24 27 30

 Si la valeur cherché est 20 alors les indices inf, sup et milieu vont
évoluer comme suit :
inf 0 5 5 6
sup 8 8 5 5
milieu 4 6 5
 Si la valeur cherché est 10 alors les indices inf, sup et milieu vont
évoluer comme suit :
inf 0 0 2
sup 8 3 3
milieu 4 1 2
17
Les tris de données

INTRODUCTION

Trier : c’est ordonner un ensemble d’éléments, c’est à dire, les ranger en ordre
croissant ou décroissant:

-Tri croissant : si l’élément d’indice I est inférieur ou égal a l’élément


d’indice I+1,
-Tri décroissant : si l’élément d’indice I est superieur ou égal à l’élément
d’indice I+1.

Le but du tri est de faciliter l’utilisation d’un ensemble de données, par


exemple pour un algorithme de recherche, fusion…etc.
Les algorithmes de Tri

Il existe plusieurs algorithmes connus pour trier les


éléments d’un tableau :
Tris élémentaires
 Le tri par sélection
 Le tri par extraction
 Le tri à bulles

Tris avancées
 Tri rapide
 …..

19
Tri par extraction
Cette méthode utilise en plus du tableau a trier un deuxième tableau dans lequel
elle place les éléments triés

Démarche :

 On cherche le plus petit élément dans le premier tableau et on le place au début


du deuxième tableau,

Ensuite on cherche le plus petit élément parmi ceux non encore sélectionnées du
premier tableau et on le place dans le deuxième tableau,

A chaque fois qu’un élément est sélectionné, il est remplacé par une valeur
spéciale pour ne pas être re-sélectionnée une deuxième fois

20
Tri par extraction
Algorithme extration

Var
T,T1 : tableau[0..10] de reels;
N,int, i,j :entiers;
Max :reels;
Debut
Pour i ← 0 à N-1 faire
ind ← 0;
Pour j ← 0 à N-1 faire
Si T[ind]>T[j] alors
ind ← j;
FinSi
FinPour
T1[i] ← T[ind];
T[ind] ← max;
FinPour
Fin
21
Tri par extraction

Algorithme extration

N.B

Max: valeur spéciale, plus grande que tous les éléments du tableau (dans le
cas ou le tri est croissant).
avant de lancer l’algorithme de tri, on peut appliquer la recherche du plus
grand élément, lui ajouter 1 et l’utiliser comme Max (Max= Maximum(T)+1)

22
Tri par extraction

Exemple d’utilisation

N=6

T 15 2 24 -8 0 4

23
Tri par sélection
C’est l’une des méthodes les plus simples pour trier un tableau T[0],t[1]…..t[N-1]

Démarche :

 Nous allons balayer tous les éléments pour chercher le plus petit élément que
nous échangeons avec t[0],
Nous répétons les mêmes structures en incrémentant l’indice I
Après N-1 répétitions du balayage et permutation, les éléments du tableau seront
triés

24
Tri par sélection : algorithme
 Supposons que le tableau est noté T et sa taille N

Pour i allant de 0 à N-2


min← t[i ];
Pour j allant de i + 1 à N-1
Si T[j] <min alors
min ← t[j];
indice ← j ;
Finsi
FinPour
si min<T[i] alors
T[indice] ← T[i];
T[i] ← min;
FinSi
FinPour

25
Tri à bulles
La méthode consiste à faire plusieurs balayages du tableau en ordonnant les paires
d’éléments adjacents, de bas en haut.

A la fin du premier balayage; l’élément le plus grand est remonté au sommet du


tableau comme une bulle d’air dans l’eau.

Lors du deuxième balayage, on ne considère que la partie non triée du tableau pour
obtenir à la fin le deuxième plus grand élément sous le plus grand et ainsi de suite
jusqu’à ce que le tableau soit trié complètement.

26
Tri à bulles : algorithme
Algorithme Bulles
Var
i,j,temp :entire;

Debut

Pour i de N-1 à 0 faire


Pour j de 1a i faire
Si T[j-1]>T[j] alors
Temp ← T[j-1]
T[j-1] ← T[j]
T[j] ← tmp
FinSi
Finpour
FinPour
Fin

27
Tri à bulles : exemple

28
Tri à bulles : exemple

Simuler l’algorithme du tri à bulles sur le tableau suivant on montrant les


étapes d’exécution.

4 1 5 3 2

29

Vous aimerez peut-être aussi