Vous êtes sur la page 1sur 22

les algorithmes de tri et de recherche

Abahchouch Youness

CPGE Agadir
REDA SLAOUI
Département d’informatique
abahchouch@gmail.com

2024
Introduction algorithmes de tri Algorithme de recherche

Introduction

Il y a pas de mal fois où on était amené à utiliser telles fonctionnalités :

Savez-vous les algorithmes implémentés derrière ?

1/18

les algorithmes de tri et de recherche


Introduction algorithmes de tri Algorithme de recherche

Le problème consiste à organiser une collection d’objet selon un ordre


déterminé.
Les objets à trier font donc partie d’un ensemble muni d’une relation d’ordre.
Parmi les ordres les plus utilisés, on trouve l’ordre numérique et l’ordre
lexicographique.

2/18

les algorithmes de tri et de recherche


Introduction algorithmes de tri Algorithme de recherche

Tri à bulle

Tri à bulle

3/18

les algorithmes de tri et de recherche


Introduction algorithmes de tri Algorithme de recherche

tri à bulle

le principe du tri à bulles est de comparer deux valeurs adjacentes et


d’inverser leur position si elles sont mal placées.
Exemple :

4/18

les algorithmes de tri et de recherche


Introduction algorithmes de tri Algorithme de recherche

tri à bulle

le principe du tri à bulles est de comparer deux valeurs adjacentes et


d’inverser leur position si elles sont mal placées.
Exemple :

4/18

les algorithmes de tri et de recherche


Introduction algorithmes de tri Algorithme de recherche

tri à bulle

le principe du tri à bulles est de comparer deux valeurs adjacentes et


d’inverser leur position si elles sont mal placées.
1 def tri_a_bulle ( L ) :
2 n = len ( L )
3 for i in range (n -1 , -1 , -1) :
4 for j in range ( i ) :
5 if L [ j ] > L [ j +1]:
6 L [ j ] , L [ j +1]= L [ j +1] , L [ j ]

5/18

les algorithmes de tri et de recherche


Introduction algorithmes de tri Algorithme de recherche

tri par sélection

Tri par sélection

6/18

les algorithmes de tri et de recherche


Introduction algorithmes de tri Algorithme de recherche

tri par sélection


Le principe de ce tri est de rechercher le plus grand élément(ou le plus petit),
le placer en fin de tableau (ou en début), recommencer avec le second plus
grand (ou le second plus petit), le placer en avant dernière position (ou en
seconde position) et ainsi de suite jusqu’à avoir parcouru la totalité du
tableau.
Exemple :

7/18

les algorithmes de tri et de recherche


Introduction algorithmes de tri Algorithme de recherche

tri par sélection


Le principe de ce tri est de rechercher le plus grand élément(ou le plus petit),
le placer en fin de tableau (ou en début), recommencer avec le second plus
grand (ou le second plus petit), le placer en avant dernière position (ou en
seconde position) et ainsi de suite jusqu’à avoir parcouru la totalité du
tableau.
Exemple :

7/18

les algorithmes de tri et de recherche


Introduction algorithmes de tri Algorithme de recherche

tri par sélection

Le principe de ce tri est de rechercher le plus grand élément(ou le plus petit),


le placer en fin de tableau (ou en début), recommencer avec le second plus
grand (ou le second plus petit), le placer en avant dernière position (ou en
seconde position) et ainsi de suite jusqu’à avoir parcouru la totalité du
tableau.

1 def r e c h e r c h e _ i n d i c e _ m a x (L , i ) :
2 ind_max =0
3 for j in range ( i ) :
4 if L [ j ] > L [ ind_max ]:
5 ind_max = j
6 return ind_max
7
8 def tri_selection ( L ) :
9 n = len ( L )
10 for i in range (n -1 ,0 , -1) :
11 ind_max = r e c h e r c h e _ i n d i c e _ m a x (L , i )
12 if ind_max != i :
13 L [ i ] , L [ ind_max ]= L [ ind_max ] , L [ i ]

8/18

les algorithmes de tri et de recherche


Introduction algorithmes de tri Algorithme de recherche

tri par insertion

Tri par insertion

9/18

les algorithmes de tri et de recherche


Introduction algorithmes de tri Algorithme de recherche

tri par insertion


C’est le tri souvent utilisé naturellement pour trier des cartes à jouer :
l’objectif d’une étape est d’insérer le i-ème élément à sa place parmi ceux qui
précèdent. Il faut pour cela trouver où l’élément doit être inséré en le
comparant aux autres, puis décaler les éléments afin de pouvoir effectuer
l’insertion.
Exemple :

10/18

les algorithmes de tri et de recherche


Introduction algorithmes de tri Algorithme de recherche

tri par insertion


C’est le tri souvent utilisé naturellement pour trier des cartes à jouer :
l’objectif d’une étape est d’insérer le i-ème élément à sa place parmi ceux qui
précèdent. Il faut pour cela trouver où l’élément doit être inséré en le
comparant aux autres, puis décaler les éléments afin de pouvoir effectuer
l’insertion.
Exemple :

10/18

les algorithmes de tri et de recherche


Introduction algorithmes de tri Algorithme de recherche

tri par insertion

C’est le tri souvent utilisé naturellement pour trier des cartes à jouer :
l’objectif d’une étape est d’insérer le i-ème élément à sa place parmi ceux qui
précèdent. Il faut pour cela trouver où l’élément doit être inséré en le
comparant aux autres, puis décaler les éléments afin de pouvoir effectuer
l’insertion.

1 def tri_insertion ( L ) :
2 n = len ( L )
3 for i in range (1 , n ) :
4 pos = i
5 while L [ pos -1] > L [ i ] and pos >0:
6 pos = pos -1
7 print ( pos )
8 elt = L [ i ]
9 for j in range (i , pos , -1) :
10 L [ j ]= L [j -1]
11 L [ pos ]= elt

11/18

les algorithmes de tri et de recherche


Introduction algorithmes de tri Algorithme de recherche

recherche séquentielle

Problème : Est-ce qu’un objet x appartient à une liste L ?


Le principe de la recherche séquentielle consiste simplement à considérer les
éléments de la liste les uns après les autres, jusqu’à ce que l’élément soit
trouvé, ou que toutes les cases aient été lues.
Exemple : valeur cherchée = 10

12/18

les algorithmes de tri et de recherche


Introduction algorithmes de tri Algorithme de recherche

recherche séquentielle

Problème : Est-ce qu’un objet x appartient à une liste L ?


Le principe de la recherche séquentielle consiste simplement à considérer les
éléments de la liste les uns après les autres, jusqu’à ce que l’élément soit
trouvé, ou que toutes les cases aient été lues.

1 def r e c h e c h e r _ s e q u e n t i e l l e (L , val ) :
2 n = len ( L )
3 for i in range ( n ) :
4 if L [ i ]== val :
5 return True
6 return False

13/18

les algorithmes de tri et de recherche


Introduction algorithmes de tri Algorithme de recherche

recherche dichotomique

La recherche dichotomique

14/18

les algorithmes de tri et de recherche


Introduction algorithmes de tri Algorithme de recherche

recherche dichotomique

La recherche dichotomique un algorithme de recherche pour trouver la


position d’un élément dans une liste triée. Le principe est le suivant :
comparer l’élément avec la valeur de la case au milieu du tableau ; si les
valeurs sont égales, la tâche est accomplie, sinon on recommence dans la
moitié du tableau pertinente.
Exemple : valeur cherchée = 8

15/18

les algorithmes de tri et de recherche


Introduction algorithmes de tri Algorithme de recherche

recherche dichotomique

La recherche dichotomique un algorithme de recherche pour trouver la


position d’un élément dans une liste triée. Le principe est le suivant :
comparer l’élément avec la valeur de la case au milieu du tableau ; si les
valeurs sont égales, la tâche est accomplie, sinon on recommence dans la
moitié du tableau pertinente.
Exemple : valeur cherchée = 8

16/18

les algorithmes de tri et de recherche


Introduction algorithmes de tri Algorithme de recherche

recherche dichotomique

La recherche dichotomique un algorithme de recherche pour trouver la


position d’un élément dans une liste triée. Le principe est le suivant :
comparer l’élément avec la valeur de la case au milieu du tableau ; si les
valeurs sont égales, la tâche est accomplie, sinon on recommence dans la
moitié du tableau pertinente.
Exemple : valeur cherchée = 8

17/18

les algorithmes de tri et de recherche


Introduction algorithmes de tri Algorithme de recherche

recherche dichotomique

La recherche dichotomique un algorithme de recherche pour trouver la


position d’un élément dans une liste triée. Le principe est le suivant :
comparer l’élément avec la valeur de la case au milieu du tableau ; si les
valeurs sont égales, la tâche est accomplie, sinon on recommence dans la
moitié du tableau pertinente.

1 def r e c h e r c h e _ d i c h o t o m i q u e (L , val ) :
2 debut , fin =0 , len ( L ) -1
3 milieu =( debut + fin ) //2
4 while debut < fin and L [ milieu ] != val :
5 if L [ milieu ] > val :
6 fin = milieu -1
7 else :
8 debut = milieu +1
9 milieu =( debut + fin ) //2
10 return L [ milieu ] == val

18/18

les algorithmes de tri et de recherche

Vous aimerez peut-être aussi