Tri de la patience
La patience de assortissant est un algorithme de tri , basé sur un jeu de carte de du solitaire , qui a la propriété de pouvoir calculer efficacement la longueur du plus long subsequence croissant dans une rangée donnée .
Le jeu de carte
Le jeu commence par une plate-forme de des cartes brouillée par , marquée .Les cartes sont occupées un dans un ordre des piles sur la table, selon les règles suivantes. Au commencement, il n'y a aucune pile. La première carte occupée forme une nouvelle pile comprenant la carte simple.
L'objet du jeu est de finir avec en tant que peu de piles comme possible.  ; Diaconis suggèrent de définir 9 ou peu de piles comme résultats de gain pour le , qui a la chance approximativement de 5% de se produire.
Algorithme pour le tri
Donné une rangée de -element avec un commande la relation de comme entrée pour le tri, le considérer comme collection de cartes, avec (inconnu dans le commencement) la commande statistique de chaque portion d'élément en tant que son index. Noter que le jeu n'emploie jamais la valeur réelle de la carte, excepté la comparaison entre deux cartes, et la commande relative de deux éléments de tableau quelconques est connue.Simuler maintenant la patience assortissant le jeu, joué avec la stratégie avide de , c., plaçant chaque nouvelle carte sur la pile extrême gauche qui est légalement possible pour employer. À chaque étape du jeu, sous cette stratégie, les étiquettes sur les cartes supérieures des piles augmentent de gauche à droite. Pour récupérer l'ordre assorti, rassembler la carte minimum de la rangée supérieure chaque fois.
Complexité
Si les valeurs des cartes sont dans la gamme , il y a une exécution efficace avec le pour mettre les cartes dans piles (qui fait le pire cas pour un ) et le dépensé pour les structures porteuses, comptant sur un arbre de Van Emde Boas de . Une description est donnée dans le travail par S.  ; Bespamyatnikh et M.Quand aucune prétention n'est faite au sujet des valeurs, la stratégie avide peut être mise en application dans le dans le pire cas. En fait, on peut la mettre en application avec une rangée de piles commande par des valeurs des cartes supérieures et, pour insérer une nouvelle carte, employer une recherche dichotomique , qui est dans le pire cas, où est le nombre de piles. Mais il n'y a aucune manière efficace connue () d'employer la structure obtenue par la stratégie avide pour accomplir le tri. La carte avec la moindre valeur est au sommet de pile extrême gauche mais quand cette carte est enlevée ce n'est plus le cas dans la nouvelle configuration, et un certain travail doit être effectué. La conclusion de la prochaine carte en la recherchant parmi tous les dessus des piles, comme dans les wikibooks exécution, donne un . L'insertion de la première pile dans la liste restante de piles, en ce qui concerne les cartes supérieures passant commande, peut coûter le chaque fois et ainsi donne également un (prendre en tant que commencer la liste de valeurs).
Algorithme pour trouver le plus long subsequence croissant
D'abord, exécuter l'algorithme de tri comme décrit ci-dessus. Le nombre en résultant de piles égalera la longueur du plus long subsequence croissant. Toutes les fois qu'une carte est placée sur une pile, met un indicateur back- à la carte supérieure dans la pile précédente (cela, par prétention, a une valeur plus basse que la nouvelle carte a). En fin de compte, suivre les en arrière-indicateurs de la carte supérieure dans la dernière pile pour récupérer un subsequence décroissant de la plus longue longueur ; son inverse est une réponse au plus long algorithme croissant de subsequence.  ; Bespamyatnikh et M.  ; Segal, et par A.  ; Ross et indépendamment Bob Floyd comme algorithme de tri. L'analyse initiale a été faite par Mallows.
Voir également
Le &mdash de système de contrôle de version du bazar ; emploie l'algorithme de tri de la patience pour la résolution de fusion.
| Random links: | Eurofurence | Liste de leaders d'État en 1350 | James Ivory (directeur) | John Simon (critique) | ImaginAsian | Clasificación_de_la_paciencia |