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

modifier

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

modifier

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   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

modifier
  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, 2002 [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,‎ 1973, p. 448-461 (DOI 10.1016/S0022-0000(73)80033-9, lire en ligne)

Voir aussi

modifier

Bibliographie

modifier

Liens externes

modifier

Articles connexes

modifier

📚 Artikel Terkait di Wikipedia

Tri par sélection

par sélection Exemple du tri par sélection utilisant une liste de nombres aléatoires Le tri par sélection (ou tri par extraction) est un algorithme de

Algorithme génétique

pour le résoudre en un temps raisonnable. Les algorithmes génétiques s'inspirent de la notion de sélection naturelle et l'appliquent à une population de

Algorithme hongrois

algorithmique et en optimisation combinatoire, l'algorithme hongrois ou méthode hongroise, aussi appelé algorithme de Kuhn-Munkres, est un algorithme

Algorithme de Dijkstra

Algorithme de Dijkstra L'algorithme de Dijkstra pour trouver le chemin le plus court entre a et b. Il choisit le sommet non visité avec la distance la

Algorithme évolutionniste

Algorithme évolutionniste Un algorithme évolutionnaire utilise itérativement des opérateurs de sélections (en bleu) et de variation (en jaune). i : initialisation

Biais algorithmique

des humains impliqués dans la collecte, la sélection, ou l'utilisation de ces données. Les biais algorithmiques ont été identifiés et critiqués pour leur

Elliptic curve digital signature algorithm

Elliptic Curve Digital Signature Algorithm (ECDSA) est un algorithme de signature numérique à clé publique, variante de DSA. Il fait appel à la cryptographie

Tri rapide

informatique, le tri rapide ou tri pivot (en anglais quicksort) est un algorithme de tri inventé par C.A.R. Hoare en 1961 et fondé sur la méthode de conception