public static int[] ShakerSort(int[] array) { for (var i = 0; i < array.Length / 2; i++) { var swapFlag = false; //проход слева направо for (var j = i; j < array.Length - i - 1; j++) { if (array[j] > array[j + 1]) { Exchange_of_elements.Swap(ref array[j], ref array[j + 1]); swapFlag = true; } } //проход справа налево for (var j = array.Length - 2 - i; j > i; j--) { if (array[j - 1] > array[j]) { Exchange_of_elements.Swap(ref array[j - 1], ref array[j]); swapFlag = true; } } if (!swapFlag) { break; } } return(array); }
public static int[] BubbleSort(int[] array) { var len = array.Length; for (var i = 1; i < len; i++) { for (var j = 0; j < len - i; j++) { if (array[j] > array[j + 1]) { Exchange_of_elements.Swap(ref array[j], ref array[j + 1]); } } } return(array); }