{% else-1 %}
Шейерная сортировка (сортировка перемешиванием) - продвинутая версия пузырьковой сортировки.

                        
//<summary>Шейкерная сортировка</summary>
//<param name="array">Массив</param>
private static void Cocktail(ref int[] array)
{
var n = array.Length - 1;

var left = 0;
var right = n;
var b = false;

while (!b)
{
b = true;

for (var i = left; i < right; i++)
{
if (array[i] <= array[i + 1]) continue;

Swap(ref array[i + 1], ref array[i]);

b = false;
}

right--;

for (var i = right; i >= left; i--)
{
if (array[i + 1] >= array[i]) continue;

Swap(ref array[i + 1], ref array[i]);

b = false;
}

left++;
}
}

//<summary>Обмен (swap) значений между двумя элементами массива</summary>
//<param name="i">Ссылка на первый элемент</param>
//<param name="j">Ссылка на второй элемент</param>
private static void Swap(ref int i, ref int j)
{
i = i + j;
j = i - j;
i = i - j;
}
0 15 0
Без комментариев...