Algorithmes de base
#Algorithmes
Définition, propriétés et exemples d'algorithmes classiques.
#Qu'est-ce qu'un algorithme ?
Un algorithme est une séquence finie d'instructions précises et compréhensibles permettant de résoudre un problème ou d'accomplir une tâche.
#Propriétés
- Finitude : L'algorithme doit se terminer en un nombre fini d'étapes
- Précision : Chaque instruction doit être claire et non ambiguë
- Entrées : Zéro ou plusieurs valeurs en entrée
- Sorties : Une ou plusieurs valeurs en sortie
- Efficacité : Chaque instruction doit être réalisable en temps fini
#Algorithmes de recherche
#Recherche linéaire
La recherche linéaire est l'algorithme de recherche le plus simple. Il consiste à parcourir un tableau élément par élément jusqu'à trouver la valeur recherchée.
Principe :
- Commencer au premier élément
- Comparer l'élément courant avec la valeur recherchée
- Si trouvé, retourner l'index
- Sinon, passer à l'élément suivant
- Répéter jusqu'à la fin du tableau
Complexité : O(n)
#Recherche dichotomique
La recherche dichotomique est un algorithme plus efficace qui nécessite un tableau trié. Elle divise récursivement l'espace de recherche en deux.
Principe :
- Déterminer les bornes gauche et droite
- Calculer le milieu
- Comparer l'élément du milieu avec la valeur recherchée
- Si trouvé, retourner l'index
- Si la valeur recherchée est inférieure, chercher dans la moitié gauche
- Si la valeur recherchée est supérieure, chercher dans la moitié droite
- Répéter jusqu'à trouver l'élément ou épuiser l'espace de recherche
Complexité : O(log n)
#Algorithmes de tri
#Tri à bulles
Le tri à bulles est un algorithme simple de tri par comparaison.
Principe :
- Parcourir le tableau de gauche à droite
- Comparer chaque paire d'éléments adjacents
- Échanger les éléments si nécessaire
- Répéter jusqu'à ce qu'aucun échange ne soit nécessaire
Complexité : O(n²)
#Tri rapide (QuickSort)
Le tri rapide est un algorithme de tri efficace basé sur le principe de "diviser pour régner".
Principe :
- Choisir un élément pivot
- Réorganiser le tableau pour que les éléments inférieurs au pivot soient à gauche et les supérieurs à droite
- Appliquer récursivement le tri aux sous-tableaux
Complexité :
- Meilleur cas : O(n log n)
- Pire cas : O(n²)