small amount of research put into patience sort, and develop several optimizations that bring its performance to within a factor of two of that of quicksort. If values of cards are in the range , there is an efficient implementation with worst-case running time for putting the cards into piles, relying on a Van Emde Boas tree. Relations to other problems Patience sorting is closely related to a card game called Floyd's game. This game is very similar to the game sketched earlier: The first card dealt forms a new pile consisting of the single card. Each subsequent card is placed on some existing pile whose top card has a value no less than the new card's value, or to the right of all of the existing piles, thus forming a new pile. When there are no more cards remaining to deal, the game ends. The object of the game is to finish with as few piles as possible. The difference with the patience sorting algorithm is that there is no requirement to place a new card on the leftmost pile where it is allowed. Patience sorting constitutes a greedy strategy for playing this game. Aldous and Diaconis suggest defining 9 or fewer piles as a winning outcome for , which happens with approximately 5% probability. Algorithm for finding a longest increasing subsequence First, execute the sorting algorithm as described above. The number of piles is the length of a longest subsequence. Whenever a card is placed on top of a pile, put a back-pointer to the top card in the previous pile (that, by assumption, has a lower value than the new card has). In the end, follow the back-pointers from the top card in the last pile to recover a decreasing subsequence of the longest length; its reverse is an answer to the longest increasing subsequence algorithm. S. Bespamyatnikh and M. Segal give a description of an efficient implementation of the algorithm, incurring no additional asymptotic cost over the sorting one (as the back-pointers storage, creation and traversal require linear time and space). They further show how to report all the longest increasing subsequences from the same resulting data structures. History Patience sorting was named by C. L. Mallows, who attributed its invention to A.S.C. Ross in the early 1960s. According to Aldous and Diaconis, patience sorting was first recognized as an algorithm to compute the longest increasing