Algorithme de sélection

En algorithmique, un algorithme de sélection est une méthode ayant pour but de trouver le k-ième plus petit élément d'un ensemble d'objets (étant donné un ordre et un entier k).

La question de la sélection est un problème essentiel en algorithmique, notamment dans la recherche du maximum, du minimum et de la médiane. Plusieurs algorithmes ont été proposés et plusieurs contextes ont été étudiés : algorithmes en ligne, complexité amortie, complexité en moyenne, ensemble d'objet particuliers etc.

Le problème de la sélection est très lié aux algorithmes de tri : l'un des algorithmes classiques, Quickselect, utilise d'ailleurs le même principe que l'algorithme de tri Quicksort.

Définition du problème

Le problème est le suivant : étant donné un ensemble de n objets, un ordre sur ces objets, et un entier k inférieur à n, trouver l'objet qui est strictement plus grand qu'exactement k objets[1].

Algorithmes

Un algorithme simple consiste à commencer par trier les objets, puis de trouver le k-ième élément. Ceci peut-être fait avec une complexité de O ( n log ( n ) ) {\displaystyle O(n\log(n))} dans le pire cas, du fait de la complexité des algorithmes de tri.

On peut cependant arriver à une complexité en moyenne linéaire et même à une complexité linéaire dans le pire cas avec l'algorithme médiane des médianes[1],[2].

Notes et références

  • (en) Cet article est partiellement ou en totalité issu de l’article de Wikipédia en anglais intitulé « Selection algorithm » (voir la liste des auteurs).
  1. a et b Chapitre 9, «Médians et rangs» de Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest et Clifford Stein, Introduction à l'algorithmique, Dunod, [détail de l’édition].
  2. Manuel Blum, Robert W. Floyd, Vaughan R. Pratt (en), Ronald L. Rivest et Robert Endre Tarjan, « Time Bounds for Selection », J. Comput. Syst. Sci., vol. 7, no 4,‎ , p. 448-461 (DOI 10.1016/S0022-0000(73)80033-9, lire en ligne)

Voir aussi

Bibliographie

  • Chapitre 9, «Médians et rangs» de Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest et Clifford Stein, Introduction à l'algorithmique, Dunod, [détail de l’édition].

Liens externes

  • David Eppstein, « Lecture notes: Selection and order statistics, ICS 161: Design and Analysis of Algorithms »,

Articles connexes

  • icône décorative Portail de l'informatique théorique