public void Sort(T[] items) { int sortedRangeEnd = 0; while (sortedRangeEnd < items.Length) { int nextIndex = FindIndexOfSmallestFromIndex(items, sortedRangeEnd); SorterHelper <T> .Swap(items, sortedRangeEnd, nextIndex); sortedRangeEnd++; } }
public void Sort(T[] items) { bool swapped; do { swapped = false; for (int i = 1; i < items.Length; i++) { if (items[i - 1].CompareTo(items[i]) > 0) { SorterHelper <T> .Swap(items, i - 1, i); swapped = true; } } } while (!swapped); }
private int CalculatePivot(T[] items, int left, int right, int pivotIndex) { T pivotValue = items[pivotIndex]; SorterHelper <T> .Swap(items, pivotIndex, right); int storeIndex = left; for (int i = left; i < right; i++) { if (items[i].CompareTo(pivotValue) < 0) { SorterHelper <T> .Swap(items, i, storeIndex); storeIndex += 1; } } SorterHelper <T> .Swap(items, storeIndex, right); return(storeIndex); }