A Fisher-Yates shuffle can be considered the reverse of this algorithm.  Bingo sort combines it with counting sort, as it fin
A Fisher-Yates shuffle can be considered the reverse of this algorithm.  Bingo sort combines it with counting sort, as it finds all instances of the key to be moved.  Use of a binary tree or a heap rather than an array improves the algorithm's performance to order n log n for n elements.  Like bubble sort, a bidirectional version exists that is sometimes called shaker sort, and though it is generally outperformed by insertion sort, it is sometimes preferred, as it requires fewer data movements.  FTP, name this intuitive sorting algorithm, in which successive minimums of an unsorted list are moved to the front in order.
A Fisher-Yates shuffle can be considered the reverse of this algorithm.  
selection sort