Int pivot;
int l_hold = left;
int r_hold = right;
pivot = numbers[left];
while (left < right)
{
while ((numbers[right] >= pivot) && (left < right))
right--;
if (left != right)
{
numbers[left] = numbers[right];
left++;
}
while ((numbers[left] <= pivot) && (left < right))
left++;
if (left != right)
{
numbers[right] = numbers[left];
right--;
}
}
numbers[left] = pivot;
int pivotIndex = left;
left = l_hold;
right = r_hold;
if (left < pivotIndex)
QuickSortRecursive(numbers, left, pivotIndex - 1);
if (right > pivotIndex)
QuickSortRecursive(numbers, pivotIndex + 1, right);
}
static void CombSort(int[] arr)
{
Console.WriteLine("До сортировки:");
PrintArray(arr);
int n = arr.Length;
double factor = 1.2473309;
int step = n - 1;
while (step >= 1)
{
for (int i = 0; i + step < n; i++)
{
if (arr[i] > arr[i + step])
{
int temp = arr[i];
arr[i] = arr[i + step];
arr[i + step] = temp;
}
}
step = (int)(step / factor);
}
BubbleSortPass(arr);
Console.WriteLine("После сортировки:");
PrintArray(arr);
}
static void BubbleSortPass(int[] arr)
{
for (int i = 0; i < arr.Length - 1; i++)
{
if (arr[i] > arr[i + 1])
{
int temp = arr[i];
arr[i] = arr[i + 1];
arr[i + 1] = temp;
}
}
}
static void SelectionSort(int[] arr)
{
Console.WriteLine("До сортировки:");
PrintArray(arr);
int len = arr.Length;
for (int i = 0; i < len - 1; i++)
{
int min = i;
for (int j = i + 1; j < len; j++)
{
if (arr[j] < arr[min])
min = j;
}
if (min != i)
{
int temp = arr[i];
arr[i] = arr[min];
arr[min] = temp;
}
}
Console.WriteLine("После сортировки:");
PrintArray(arr);
}
}
}
