Aller au contenu
AMPHYEssayer
← Toutes les fiches

Complexité des algorithmes et algorithmes de tri

Notations O, Ω et Θ, calcul de la complexité des boucles et des fonctions récursives, recherche dichotomique, tris par sélection, insertion, fusion, rapide et par tas, borne inférieure des tris par comparaison.

Acheter · 0,99 €

Aperçu du PDF · 8 pages

  • Page 1 de la fiche « Complexité des algorithmes et algorithmes de tri »
  • Page 2 de la fiche « Complexité des algorithmes et algorithmes de tri »

Sommaire détaillé

  1. 01Mesurer la complexitélire l'aperçu ↓
    • 1.1 Ce que l'on mesure
    • 1.2 Les notations asymptotiques
    • 1.3 Les classes usuelles
  2. 02Calculer une complexité
    • 2.1 Les structures itératives
    • 2.2 Les algorithmes récursifs
  3. 03Rechercher un élément
  4. 04Les algorithmes de tri
    • 4.1 Les tris quadratiques
    • 4.2 Les tris en $n \log n$
    • 4.3 Les notions à maîtriser
    • 4.4 La borne inférieure des tris par comparaison
  5. 05Méthode, pièges et sujets
    • 5.1 Pour analyser un algorithme
    • 5.2 Les pièges
    • 5.3 Sujets probables

Aperçu gratuit — la première partie en entier

1Mesurer la complexité

1.1Ce que l'on mesure

On ne compte pas des secondes, qui dépendent de la machine : on compte des opérations, et l'on s'intéresse à leur ordre de grandeur quand nn devient grand.

CasDéfinitionExemple : recherche séquentielle d'un élément dans un tableau
Pire casLe maximum d'opérations sur toutes les entrées de taille nnL'élément est absent ou en dernière position : nn comparaisons
Meilleur casLe minimumL'élément est en première position : 1 comparaison
En moyenneL'espérance, pour une distribution donnée des entréesÉlément présent, position uniforme : environ n/2n/2 comparaisons

1.2Les notations asymptotiques

NotationDéfinitionLecture
f(n)=O(g(n))f(n) = O(g(n))Il existe c>0c > 0 et n0n_0 tels que f(n)≤c g(n)f(n) \le c\, g(n) pour tout n≥n0n \ge n_0ff croît au plus comme gg (borne supérieure)
f(n)=Ω(g(n))f(n) = \Omega(g(n))Il existe c>0c > 0 et n0n_0 tels que f(n)≥c g(n)f(n) \ge c\, g(n) pour tout n≥n0n \ge n_0ff croît au moins comme gg (borne inférieure)
f(n)=Θ(g(n))f(n) = \Theta(g(n))f=O(g)f = O(g) et f=Ω(g)f = \Omega(g)ff croît exactement comme gg, à une constante près

1.3Les classes usuelles

ClasseNomExemplePour n=106n = 10^6, ordre de grandeur
Θ(1)\Theta(1)ConstanteAccès à une case de tableau1
Θ(log⁡n)\Theta(\log n)LogarithmiqueRecherche dichotomique20
Θ(n)\Theta(n)LinéaireParcours d'un tableau, recherche du maximum10610^6
Θ(nlog⁡n)\Theta(n \log n)Quasi linéaireTri fusion, tri par tas2×1072 \times 10^7
Θ(n2)\Theta(n^2)QuadratiqueTri par sélection, double boucle101210^{12}
Θ(n3)\Theta(n^3)CubiqueProduit naïf de matrices101810^{18}
Θ(2n)\Theta(2^n)ExponentielleÉnumération de tous les sous-ensemblesInaccessible
Schéma
La suite : 4 parties, 8 pages en tout

Calculer une complexité · Rechercher un élément · Les algorithmes de tri · Méthode, pièges et sujets

Débloquer · 0,99 €

Les notions de cette fiche

Sources vérifiées

  • T. H. Cormen, C. E. Leiserson, R. L. Rivest et C. Stein, Algorithmique, Dunod (trad. de Introduction to Algorithms, MIT Press)
  • D. E. Knuth, The Art of Computer Programming, vol. 3 : Sorting and Searching, Addison-Wesley
  • C. A. R. Hoare, « Quicksort », The Computer Journal, 1962