static void QuickSortRecursion(SortingArray array, int left, int right) { if (left < right) { int pivot = right; int l = left; int r = right; while (l < r) { if (array.IsBigger(l, pivot)) { while (l < r && array.IsBiggerOrEqual(r, pivot)) { r--; Updated(array); } array.Swap(l, r); } l++; Updated(array); } if (l > left) { QuickSortRecursion(array, left, l - 1); } if (r < right) { array.Swap(r, pivot); QuickSortRecursion(array, r, right); } } }
public static void SelectionSort(SortingArray array) { for (int i = array.Length - 1; i > 0; i--) { int biggest = 0; for (int j = 0; j <= i; j++) { if (array.IsBiggerOrEqual(j, biggest)) { biggest = j; } Updated(array); } array.Swap(biggest, i); Updated(array); } }