Comb sort

This sort makes repeated runs through the array, in which pairs of elements are compared. If they are not sorted relative to each other, then an exchange is made. As a result, large elements migrate to the end of the array, and small elements migrate to the beginning.

Shaker sort

In shaker sorting, the limits of the part of the array in which there are permutations are narrowed. The inner loops pass through the array in one direction and then in the other, lifting the lightest element up and dropping the heaviest element to the very bottom in one iteration of the outer loop.